PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل درگاه بانکی پس از بازگشت وقتی ssl سایت فعال می شود



ali1408
December 8th, 2020, 19:04
با درود
وقتی ssl سایت را فعال می کنم در بازگشت از بانک دچار مشکل می شود ارور خاصی هم نمی دهد کد درگاه تجارت به شرح ذیل می باشد آیا باید برای ssl تغییراتی انجام داد؟


function tejarat_request(){

require_once "pack/nusoap/nusoap.php";

$SOAP = new nusoap_client('https://ikc.shaparak.ir/XToken/Tokens.xml',true);

$SOAP->soap_defencoding = 'UTF-8';

if($this->soap_error($SOAP, 711)) return $this->out_msg;



$parameters = array(

'amount' => $this->pay_amount,

'merchantId' => ENGINE::$config->epay->tejarat->merchant_id,

'invoiceNo' => $this->pay_id,

'paymentId' => $this->pay_id,

'revertURL' => $this->callback_url,

);



$result = $SOAP->call('MakeToken', array($parameters));

if($this->soap_error($SOAP, 712, $result)) return $this->out_msg;



$PAYINFO['pay'] = $result;

$this->save_info('info', json_encode($PAYINFO));



if($result['MakeTokenResult']['result'] == 'false')

return '<div class="alert danger">خطای 07130: خطا در اتصال به درگاه!</div>';



return '<form action="https://ikc.shaparak.ir/tpayment/payment/Index" method="post" id="EpayForm">'.

'<h5>'.ENGINE::fa_digits(number_format($this->pay_amount)).' ریـال</h5>'.

'<img src="lib/img/epay-tejarat.png" vspace="5">'.

'<p>درحال اتصال به درگاه پرداخت ...</p>'.

'<input type="hidden" name="token" value="'.$result['MakeTokenResult']['token'].'">'.

'<input type="hidden" name="merchantId" value="'.ENGINE::$config->epay->tejarat->merchant_id.'">'.

'<noscript><input type="submit" class="button" value="پرداخـت"></noscript></form>';

}



function tejarat_response(){

$this->pay_id = intval($_POST['paymentId']);

$this->pay_refid = $_POST['referenceId'];

$this->pay_amount = newdb()->read('amount','epayment',"id=$this->pay_id");

$this->save_info('ref_id', $this->pay_refid);

$PAYINFO['token'] = $_POST['token'];

$PAYINFO['resultCode'] = $_POST['resultCode'];

$this->save_info('info', json_encode($PAYINFO) );

if( $_POST['resultCode'] != 100 ) return false;



$SOAP = new nusoap_client('https://ikc.shaparak.ir/XVerify/Verify.xml',true);

$SOAP->soap_defencoding='UTF-8';

if($this->soap_error($SOAP, 721)) return false;



$params = array(

'token' => $_POST['token'],

'merchantId' => ENGINE::$config->epay->tejarat->merchant_id,

'referenceNumber' => $this->pay_refid,

'sha1Key' => ENGINE::$config->epay->tejarat->sha1key,

);



$result = $SOAP->call('KicccPaymentsVerification', $params);

$PAYINFO['verify'] = $result;

$this->save_info('info', json_encode($PAYINFO));



if($this->soap_error($SOAP, 722, $result)) return false;



return $result['KicccPaymentsVerificationResult'] == $this->pay_amount;

}

Web-Hosting
December 8th, 2020, 19:25
سلام آگر درگاه روی http درخواست کرده باشید و الان روی https باشید باید به psp اعلام کنید تا تغییرات لازم انجام شود

ali1408
December 13th, 2020, 14:12
با تشکر
از بانک پیگیری کردم گفتند آدرس callback که ارسال می شود با http هستش باید یا https ارسال شود به همین خاطر می باشد
تو کجای کد باید این تغییرات را انجام بدم؟
تو خط 11 کد بالا 'revertURL' => $this->callback_url, اینجا آدرس ست می شود ولی نمی دونم باید چه تغیراتی بدم
البته در یه بخشی این کد را دارم

self::$HOST = strtolower(strtok($_SERVER['SERVER_PROTOCOL'],'/').'://'.$_SERVER['HTTP_HOST']);
احتمالا باید این یه تغییراتی بدم
لطفا راهنمایی نمایید

karimeh
December 13th, 2020, 16:10
نیاز به بررسی بیشتر داره و با دسترسی قابل حل هست . لطفا از طریق پیام خصوصی و یا آی دی تلگرام اطلاعات بیشتر رو ارسال کنید با هزینه جزئی قابل رفع هست.

ali1408
December 13th, 2020, 19:49
در در هد سایت آدرس با این کد ست می شود

self::$HOST = strtolower(strtok($_SERVER['SERVER_PROTOCOL'],'/').'://'.$_SERVER['HTTPS_HOST']);
وقتی به این آدرس تغییر می دم مشکل برطرف می شود

self::$HOST = 'https://sitename.com';
چطور می تونم تو کد بالا اینو ست کنم تا در بدون https و هم چنین با http کار کنه
می خوام طوری باشه که آدرس را دستی وارد نکنم برای چند سایت مختلف استفاده می کنم