تالار گفتمان nCIS.ir

نسخه‌ی کامل: درگاه بانک ملت
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام ممنون میشم راهنمایی کنید چطور میتونم درگاه بانک ملت را در yii2 فریم ورک پیاده سازی کنم.
باید برای پرداخت یه کامپوننت بسازین و متدهای PaymentRequest و Verify و Settle رو داخلش بگذارین. پیشنهاد میکنم یه پوشه components درست کنید و داخل اون ذخیره کنید:
namespace appcomponents;

class Mellat extends yiibaseComponent {
    public function paymentRequest(...) {
        // ...
    }
    public function verify(...) {
        // ...
    }
    public function settle(...) {
        // ...
    }
}

بعد این کامپوننت رو توی فایل تنظیمات تعریف کنید:
'components' => [
    'mellat' => 'appcomponentsMellat',
    // ...
],

و بعد با کمک روش زیر از متدهاش استفاده کنید:
Yii::$app->mellat->paymentRequest(...)
من کد های زیر رو نوشتم ولی به درگاه وصل نشد، میشه لطفاً راهنمایی بفرمایید

public function pay($id, $amount, $paymentId, $callback, $description = null)
{
$client = new SoapClient('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl', array('soap_version' => SOAP_1_1));
$namespace='http://interfaces.core.sw.bps.com/';

$terminalId = '***';
$userName = '***';
$userPassword = '****';
$localDate = date("Ymd");
$localTime = date("His");

$parameters = array(
'terminalId' => $terminalId ,
'userName' => $userName ,
'userPassword' => $userPassword ,
'orderId' => $id ,
'amount' => $amount * 10 ,
'localDate' => $localDate ,
'localTime' => $localTime ,
'additionalData' => '' ,
'callBackUrl' => $callback ,
'payerId' => '0' ,
);

/*try{
$err = $client->getError();
if($err){
return -6;
}
} catch (Exception $ex) {
Yii::$app->session->setFlash('error', 'خطا در اتصال به درگاه پرداخت');
return -6;
}*/

$result = $client->__soapCall('bpPayRequest', array($parameters), array($namespace));
/*$res = explode (',', $result);
if( ! isset($res[0]) or $res[0] != "0" or ! isset($res[1]))
return -6;
else
{
return strip_tags($res[1]);
}*/

return $result;
}