04-04-1394، 02:00 ب.ظ
سلام خسته نباشید
من برای یه سایتی درگاه پرداخت بانک ملت رو گذاشتم bpPayRequest انجام میشه و پول هم از حساب مشتری کم میشه ولی به حساب صاحب درگاه واریز نمیشه و برگشت داده میشه به حساب مشتری!
من اول یه تابع استاتیک با محتوای زیر داخل کامپونتام تعریف کردم
من برای یه سایتی درگاه پرداخت بانک ملت رو گذاشتم bpPayRequest انجام میشه و پول هم از حساب مشتری کم میشه ولی به حساب صاحب درگاه واریز نمیشه و برگشت داده میشه به حساب مشتری!
من اول یه تابع استاتیک با محتوای زیر داخل کامپونتام تعریف کردم
public static function verifyRequest($orderId, $saleorderid, $salerefrenceid) { $client = new nusoap_client(self::$webservice); if($client->getError()) { echo 'error: '.$client->getError(); } else { $terminal_id = self::$terminalId; $username = self::$username; $password = self::$password; $orderID = $orderId; $saleorderID = $saleorderid; $verifyorderid = $salerefrenceid; $params = array( 'terminalId' => $terminal_id, 'userName' => $username, 'userPassword' => $password, 'orderId' => $orderID, 'saleOrderId' => $saleorderID, 'saleReferenceId' => $verifyorderid ); } $result = $client->call('bpVerifyRequest', $params, self::$namespace); if($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } $err = $client->getError(); if($err) { // Display the error echo '<h2>Error</h2><pre>'.$err.'</pre>'; die(); } else { $terminal_id = self::$terminalId; $username = self::$username; $password = self::$password; $orderID = $orderId; $saleorderID = $saleorderid; $verifyorderid = $salerefrenceid; $params = array( 'terminalId' => $terminal_id, 'userName' => $username, 'userPassword' => $password, 'orderId' => $orderID, 'saleOrderId' => $saleorderID, 'saleReferenceId' => $verifyorderid ); $result = $client->call('bpInquiryRequest', $params, self::$namespace); if($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } $err = $client->getError(); if($err) { // Display the error echo '<h2>Error</h2><pre>'.$err.'</pre>'; die(); } else { $terminal_id = self::$terminalId; $username = self::$username; $password = self::$password; $orderID = $orderId; $saleorderID = $saleorderid; $verifyorderid = $salerefrenceid; $params = array( 'terminalId' => $terminal_id, 'userName' => $username, 'userPassword' => $password, 'orderId' => $orderID, 'saleOrderId' => $saleorderID, 'saleReferenceId' => $verifyorderid ); $result = $client->call('bpReversalRequest', $params, self::$namespace); if($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } $err = $client->getError(); if($err) { // Display the error echo '<h2>Error</h2><pre>'.$err.'</pre>'; die(); } else { $terminal_id = self::$terminalId; $username = self::$username; $password = self::$password; $orderID = $orderId; $saleorderID = $saleorderid; $verifyorderid = $salerefrenceid; $params = array( 'terminalId' => $terminal_id, 'userName' => $username, 'userPassword' => $password, 'orderId' => $orderID, 'saleOrderId' => $saleorderID, 'saleReferenceId' => $verifyorderid ); $result = $client->call('bpSettleRequest', $params, self::$namespace); if($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } $err = $client->getError(); if($err) { // Display the error echo '<h2>Error</h2><pre>'.$err.'</pre>'; die(); } else { return true; } } } } }که همونطور که مشخصه وقتی که وریفای ..... ستل درست اگه انجام بشه true بر میگردونه حالا من توی صفحه ی callback به شکل زیر چک کردم که اگه متدم true داد عملیاتو تو دیتابیس انجام بده و فاکتور رو هم نشون بده هم برای فرد اس ام اس کنه که انجام میشه ولی باز پول به حساب مشتری برگشت داده میشه!!!! می خواستم بدونم مشکلی تو کدام وجود داره؟!
public function actionFacture() { $RefId = $_POST['RefId']; $ResCode = $_POST['ResCode']; $SaleOrderId = $_POST['SaleOrderId']; $SaleReferenceId = $_POST['SaleReferenceId']; $pay = Pay::model()->findByPk($SaleOrderId); if(!$pay) { throw new CHttpException('500', 'فاکتور مورد نظر یافت نشد.'); } else { if($pay->refid == $RefId) { if(Payment::verifyRequest($pay->id, $SaleOrderId, $SaleReferenceId)) { . . . } }