<?php
$amount= 1000;
$merchant = '';
$resnum = rand(1000,99999);
$calback = 'http://site.com';
?>
<form name="samanbank" action="https://sep.shaparak.ir/Payment.aspx" method="POST">
<input type="hidden" id="Amount" name="Amount" value="<?php echo $amount; ?>">
<input type="hidden" id="MID" name="MID" value="<?php echo $merchant; ?>">
<input type="hidden" id="ResNum" name="ResNum" value="<?php echo $resnum; ?>">
<input type="hidden" id="RedirectURL" name="RedirectURL" value="<?php echo $calback;?>">
</form>
<?php
echo "<script language='javascript'>document.samanbank.submit(); </script>";
?>
include('/usr/share/pear/nusoap.php');require_once('nusoap.php');
$soapclient = new soapclient('https://acquirer.samanepay.com/payments/referencepayment.asmx?WSDL', 'wsdl');
#$soapclient->debug_flag=true;
$soapProxy = $soapclient->getProxy();
#if( $err = $soapclient->getError() )
# echo $err ;
#echo $soapclient->debug_str;
$res = $soapProxy->VerifyTransaction("Refrence Number", "MTID"); #reference number and sellerid
if ($res <= 0)
echo 'verification failed';
else {
echo 'it verified';
echo $res;
}
<?php
$merchant = '';
$amount = ''; // باید از دیتابیس خوانده شود
$ResNum = $_POST['ResNum'];
$RefNum = $_POST['RefNum'];
$State = $_POST['State'];
$TRACENO = $_POST['TRACENO'];
if ($State=='OK') {
$soapclient = new soapclient('https://acquirer.samanepay.com/payments/referencepayment.asmx?WSDL', 'wsdl');
#$soapclient->debug_flag=true;
$soapProxy = $soapclient->getProxy();
#if( $err = $soapclient->getError() )
# echo $err ;
#echo $soapclient->debug_str;
$res = $soapProxy->VerifyTransaction($RefNum, $merchant); #reference number and sellerid
if ($res <= 0)
echo 'verification failed';
else if ( $res == $amount ) {
echo 'it verified';
echo 'کدرهگیری'.$TRACENO;
echo 'رسید دیجیتال'.$RefNum;
echo 'شماره خرید'.$RefNum;
}
else {
echo 'خطا';
}
}
else {
echo 'خطا';
}
$soapclient = new SoapClient("https://acquirer.samanepay.com/payments/referencepayment.asmx?WSDL");
$res = $soapclient->VerifyTransaction($RefNum, $MID);
احتمالا شما تو کد بالا nusoap رو اینکلودر نکرده بودید .کد بالا رو تست کردم متاسفانه soapclient برقرار نمیشه! soapclinet رو به صورت زیر تغییر دادم و ارتباط برقرار شد و تابع بازگشت به درستی کار کرد:
از همراهی شما دوست عزیز خیلی خیلی ممنونکد:$soapclient = new SoapClient("https://acquirer.samanepay.com/payments/referencepayment.asmx?WSDL"); $res = $soapclient->VerifyTransaction($RefNum, $MID);
با سلام دوستان عزیز کسی فایل اماده این مراحل را داره من دنبال افزونه بانک سامان برای ووکامرس را میخوامآره باید از SoapClient بجای soapclient استفاده بشه .
میدونید چرا ؟
چون همونطور که قبلا گفتم nusoap ، آرگومانش به صورت آرایه هست در حالی $soapProxy->VerifyTransaction آرگومانش توی این کد آرایه ای نیست . پس باید از soap بجای nusoap استفاده میشد .
خیلی جالبه که این کدی بود که توی مستندات خود سایت بانک سامان بود !!!