From 80f4016a7824e52e515af11f331d8469668372b2 Mon Sep 17 00:00:00 2001 From: Mohammad Mohammadi Date: Mon, 1 Jun 2020 21:14:15 +0430 Subject: [PATCH] update readme and some bugfix --- README.md | 103 ++++++++++++++++++++++++++++++++++++ src/utils/methods/issue.php | 3 +- src/utils/pay.php | 2 +- 3 files changed, 105 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 90d48da..b0a5b26 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,33 @@ > روت دوم اختیاریه، در صورتی که نخواید کاربر رو برای پرداخت به درگاه جیب بفرستید می‌تونید کیف پول ایجاد شده توسط جیب رو توی سایت خودتون نشون بدین و کاربر رو به درگاه هدایت نکنید. +### رفع مشکل توکن روت‌ها +
+پاسخ‌های ارسالی از طرف سرور جیب به صورت post هستن و این با csrf_token لاراول به مشکل می‌خوره.
+برای حل این مشکل باید روت‌های callback و webhook رو در مسیر app\http\Middleware\VerifyCrsfToken.php استثنا کرد: +
+ +```php + شما می‌تونید با استفاده از فساد Aries\Jeeb\Facades\Jeeb و متود pay یک ترانش جدید ایجاد کنید: @@ -52,3 +79,79 @@ Route::get('/jeeb/pay', function() { ->redirect(); # انتقال کاربر به درگاه جیب }); ``` + +### بازگشت از درگاه (callback) +
+ با استفاده از فساد Aries\Jeeb\Facades\Jeeb و متود callback پاسخ سرور جیب رو هندل کنید.
+ همچنین با استفاده از فساد Aries\Jeeb\Facades\State و متود message مقدار stateId برگشت داده شده رو برای کاربر ترجمه کنید. +
+ +```php +process(); + $message = State::message($response->stateId); + + return view('path.to.your.callback.view', compact('response', 'message')); +}); +``` + +### وب‌هوک +
+شما می‌تونید با استفاده از فساد Aries\Jeeb\Facades\Jeeb و متود webhook پاسخ‌های ارسال شده از طرف سرور جیب رو هندل کنید.
+لازم به ذکره که به دلیل زمانبر بودن تایید تراکنش در بلاکچین باید منتظر ارسال پاسخ تایید از طرف سرور جیب به صورت وب‌هوک باشید و در صورت تایید شدن تراکنش با ststeId برابر ۴ می‌تونید محصول رو به کاربر پرداخت کنید.
+مبالغ پرداختی بیشتر یا کمتر از مقدار مشخص شده توسط شما بصورت خودکار به کاربر برگشت داده می‌شه. +
+ +```php + +برای مشاهده‌ی لیست تراکنش‌ها به تفکیک وضعیت پرداخت می‌تونید از فساد Aries\Jeeb\Facades\Jeeb و متود transaction استفاده کنید: + + +```php +use Aries\Jeeb\Facades\Jeeb; + +public function transactions(Request $request) { + switch($request->input('type')) { + case 'confirmed': + # تراکنش‌هایی که در بلاکچین تایید شدند. + return Jeeb::transaction()->confirmed()->get(); + case 'unConfirmed': + # تراکنش‌هایی که در بلاکچین تایید شدند ولی شما هنوز آن‌ها را تایید نکرده اید. + return Jeeb::transaction()->unConfirmed()->get(); + case 'pending': + # تراکنش‌هایی که هنوز در بلاکچین تایید نشده اند. + return Jeeb::transaction()->pending()->get(); + case 'rejected': + # تراکنش‌هایی که توسط کاربر لغو شده یا در زمان مقرر پرداخت نشده‌اند + return Jeeb::transaction()->rejected()->get(); + case 'less': + # تراکنش‌هایی که مقدار پرداخت شده آن توسط کاربر کمتر از مقدار مشخص شده توسط شماست + return Jeeb::transaction()->lessPaid()->get(); + case 'over': + # تراکنش‌هایی که مقدار پرداخت شده آن توسط کاربر بیشتر از مقدار مشخص شده توسط شماست + return Jeeb::transaction()->overPaid()->get(); + case 'all': + # لیست تمام تراکنش‌ها + return Jeeb::transaction()->get()->load('wallets'); + } + } +``` + +
+مقدار بازگشتی توسط این متود یک مدل استاندارد لاراولی بوده و می‌تونید مثل یک مدل استاندارد باهاش برخورد کنید، مثلا می‌تونید با متود paginate اون رو صفحه بندی کنید. +
\ No newline at end of file diff --git a/src/utils/methods/issue.php b/src/utils/methods/issue.php index 45406c5..bc678b1 100644 --- a/src/utils/methods/issue.php +++ b/src/utils/methods/issue.php @@ -118,7 +118,6 @@ public function init() { $params['orderNo'] = $this->orderNo; $params['value'] = $this->value; $params['coins'] = $this->coins; - /*$this->callbackUrl != null ??*/ if($this->callbackUrl != null) { $params['callbackUrl'] = $this->callbackUrl; } @@ -128,10 +127,10 @@ public function init() { $params['allowTestNet'] = $this->allowTestNet; $params['language'] = $this->language; - // return $params; $result = Http::post($url, $params); + if($result['status'] != 200) { throw new Exception($result['errorMessage']); } diff --git a/src/utils/pay.php b/src/utils/pay.php index 2889cc8..aae40ab 100644 --- a/src/utils/pay.php +++ b/src/utils/pay.php @@ -62,7 +62,7 @@ public function process() { ->callbackUrl($this->callback) ->language($this->language) ->init(); - + $transaction = JeebTransaction::create([ 'orderNo' => $this->order, 'stateId' => 2,