PDA

View Full Version : تكميل فرايند خريد اينترنتي بانك سامان



bps20590
سه شنبه 21 مهر 1388, 21:44 عصر
با سلام
من يك اكانت پرداخت اينرنتي بانك سامان در سايتم قرار دادم وحالا هنگامي كه خريدار خريد مي كند تا جايي كه از حساب خريدار كسر ميشود مشكلي ندارم ولي بدنبال آن در توضيحات سايت سامان آمده كه ميبايست كارهاي زير رابراي تاييد نهايي انجام بدهم ولي نمي دانم بايد چكار كنم وكدها را كجا بزارم لطفا اگه كسي ميدونه كمك كنه.
توضيحات بانك سامان:
فروشنده بايد اين متد Verify Web Methodرا صدا زند و به نتيجه دريافتي از تراکنش اکتفا ننمايد. مقدار برگشتي اين تابع بايد برابر مقدار کل خريد (Total Amount) باشد و در غير اين صورت تراکنش داراي مشکل مي باشد. با مقايسه اين مبلغ و مبلغ فاکتوري که فروشنده خود در اختيار دارد 4 حالت زير ممکن است به وجود آيد:
i. اگر اين دو مبلغ برابر باشند، فروشنده مي تواند سرويس خود را ارايه نمايد. (مرحله5)
ii. اگر مبلغ پرداختي کمتر از مبلغ فاکتور فروشنده باشد، فروشنده مي تواند پس از اعلام به خريدار، کل سند را برگشت بزند.
iii. اگر مبلغ پرداختي بيشتر از مبلغ فاکتور نزد فروشنده باشد، فروشنده مي تواند پس از اعلام به خريدار، ما به التفاوت سندها را برگشت بزند.
iv. خروجي اين تابع اگر منفي باشد بيانگر رويداد خطايي مي باشد که شرح اين خطاها نيز در ضميمه ب آورده شده است

متن فايل verify هم بشرح زير است

<?php
include('/usr/share/pear/nusoap.php');
require_once('nusoap.php');
$soapclient = new soapclient('https://Acquirer.sb24.com/ref-payment/ws/ReferencePayment?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 ;
}
?>

hosseintdk775
چهارشنبه 22 مهر 1388, 13:33 عصر
بسم الله الرحمن الرحیم
سلام
بعد از اینکه کاربر وارد سایت سامان برای پرداخت شد و مبلغ رو پرداخت کرد بعد از پرداخت به صفحه ای که شما مشخص کرده اید هدات می شه دیگه / درسته؟

خوب شما باید عملیات رو تو همون صفحه انجام بدید ( همون ببینید که مبلغ پرداختی برابر مبلغ سبد هست یا نه و ... ) و کدها رو جهت تایید تو همون صفحه باید قرار بدید.

bps20590
چهارشنبه 22 مهر 1388, 15:14 عصر
دوست عزيز مشكل من همينجاست كه وقتي به صفحه مورد نظر ارجاع داده شد چطور اين شرط رو چك كنم
كد من بصورت زير هستش ولي جواب نمي ده


&nbsp; خريد اعتبار بصورت آنلاين:
<?php
echo '<font color="white"> &nbsp;&nbsp;'.jdate("l j F Y - ساعت H:i A",$nextWeek).'</font>'; ?>
</div>

<?php
include ('../db_connect.php');
include('nusoap.php');
require_once('nusoap.php');

if ($_POST['State']=='OK')
{
if ($_POST['RefNum']=="")
echo 'گویا خرید شما توسط بانک تایید شده است اما رسید دیجیتالی شما تایید نگشت';
else
{
$client = new SoapClient("https://acquirer.sb24.com/ref-payment/ws/ReferencePayment");
$result = $client->VerifyTransaction($_POST['RefNum'], "02127991-123800");
if ( $result <= 0 )
echo 'Verification failed:'.$result;
else
echo 'It verified. The amount of transaction is: '.$result;

}
?>

<table border="0" width="90%" id="table4" align="center">
<tr style="height:20px">
<td width="25%" bgcolor=#76CBCB align=center>
شماره فروشنـده</td>
<td bgcolor=#E4F0D9 width="73%" align=center>
<font color="#999999"><? echo $_POST['MID'] ?></font></td>

</tr>
<tr style="height:20px">
<td width="25%" bgcolor=#76CBCB align=center>
شماره خريد</td>
<td bgcolor=#E4F0D9 width="73%" align=center>
<font color="#999999"><?echo $_POST['ResNum']?></font></td>

</tr>
<tr style="height:20px">
<td width="25%" bgcolor=#76CBCB align=center>
شماره رسيـد</td>
<td bgcolor=#E4F0D9 width="73%"align=center>
<font color="#999999"><?
if ($_POST['RefNum']==null)
echo 'رسيدديجيتالي براي شما صادر نشده است' ;
else
echo $_POST['RefNum'];
?></font></td>

</tr>
<tr style="height:20px">
<td width="25%" bgcolor=#76CBCB align=center>
نتيجـه خريد</td>
<td bgcolor=#E4F0D9 width="73%" align=center>
<?echo $_POST['State'];?>
</td>

</tr>

</table>

<?}}?>


اين قسمتي از فايل هستش كه مقادير برگشتي رو دريافت ميكنه

bps20590
پنج شنبه 23 مهر 1388, 12:18 عصر
لطفا اگه كسي ميدونه كمك كنه

bps20590
پنج شنبه 23 مهر 1388, 18:05 عصر
آقا جان يعني كسي نيست مارا ياري كند