$this->getConfigData('api_url'), 'connect_timeout' => 20,//sec 'timeout' => 20,//sec 'verify' => false, ]); } public function isRegistered(){ $payment = $this->getCart()->payment; return (!empty($payment) && !empty($payment->orderId)); } public function registerOrder(){ $cart = $this->getCart(); $lifeTime = config('session.lifetime',10);//10 minutes $client = $this->getApiClient(); $params =[ 'form_params' => [ 'userName' => $this->getConfigData('business_account'),//'103161020074', 'password' => $this->getConfigData('account_password'),//'E12wKp7a7vD8', 'sessionTimeoutSecs' => $lifeTime * 30, //(600 sec) 'orderNumber' =>$cart->id . Carbon::now()->timestamp, 'currency' => 934, 'language' => 'ru', 'description'=> "Sarga online sowda jemi: {$cart->grand_total}m.", 'amount' => $cart->grand_total * 100,// amount w kopeykah 'returnUrl' => route('paymentmethod.altynasyr.success',['cart_id'=>$cart->id]), 'failUrl' => route('paymentmethod.altynasyr.cancel') ], ]; try { $result = json_decode($client->post('register.do',$params)->getBody(),true); return [ 'data' => [ 'url' => $result['formUrl'], 'status' => true ], 'message' => 'Redirect to payment gateway', ]; // Log::info($result); // if($result['errorCode'] == 0){ // return [ // "success" => $this->registerOrderId($result['orderId']), // "url" => $result['formUrl'], // "message" => "unable to save order id" // ]; // } // else{//if already registered or otkazana w dostupe // return [ // "success" => false, // "message" => $result['errorMessage'] // ]; // } }catch(\Exception $e){ // Log::info($result); // Log::error(c); return ['data' => [ 'status' => false ], 'message' =>$e->getMessage(), ]; } } public function registerOrderId($orderId){ $payment = $this->getCart()->payment; $payment->order_id = $orderId; // dd($payment); // $payment->paymentFormUrl = $formUrl; $payment->save(); } public function getOrderStatus(){ try{ $client = $this->getApiClient(); $payment = $this->getCart()->payment; $orderId = request()->get('orderId'); if($payment && $payment->order_id === $orderId){ $params = [ 'form_params' => [ 'userName' => $this->getConfigData('business_account'), 'password' => $this->getConfigData('account_password'), 'orderId' => $payment->order_id, ] ]; $result = json_decode($client->post('getOrderStatus.do',$params)->getBody(),true); if($result['errorCode'] == 0 && $result['orderStatus'] == 2){ return [ "success" => true, "message" => "Payment successful" ]; } return [ "success" => false, "message" => $result['ErrorMessage'] ]; } return [ "success" => false, "message" => "Malformed request" ]; }catch(\Exception $e){ return [ "success" => false, "message" => $e->getMessage() ]; } } }