سلام
من بتازگی با بانک پارسیان و سایت پرداخت قرارداد خرید آنلاین بستم و برای هر دو به مشکل برخوردم
برای بانک پارسیان اونا به من یه فایل پی اچ پی دادند که باید در زمان خرید نهایی در صفحه مورد نظر بزارم و کاربر رو به بانک پارسیان هدایت کنم
البته فایل راهنما هم فرستادند اما متاسفانه نتونستم ازش استفاده کنم
متن فایلها رو در زیر آوردم :
===================================
راهنماي اتصال به سرويس دروازه پرداخت: (نسخه1.2 )
نکات عمومي
• در هر عمليات بانکي از سوي فروشنده، يک کد unique (واحد براي همان فروشنده) تحت نام OrderId، ميبايست به دروازه پرداخت ارسال گردد، جزئيات ارسال آن در توضيحات هر تراکنش بيان خواهد شد.
• پين (pin) فروشنده، شناساگر و نيز کد رمز وي بوده و فروشنده آنلاين ملزم به نگهداري امن اين کد ميباشد، اين کد براي اجراي هر عمليات لازم است.
• پس از اجراي هر عمليات يک کد وضعيت (status) به معني وضعيت فراخواني آن متد، به eShop برگردانده ميشود، که بسته به آن کد فرايند هاي خاص آن بايد صورت گيرد. کد صفر به معني موفقيت آميز بودن عمليات است، ساير کدها براي هر متد در توضيحات متد آمده است.
پرداخت مشتري (Sale)
با انجام اين تراکنش پول از حساب مشتري کم شده و پس از عمليات تسويه حساب به حساب فروشنده واريز ميشود. انجام کامل اين تراکنش مستلزم طي کامل چرخه پرداخت بوده و چنانچه اين روند به آخرين وضعيت (موفقيت و پايان عمليات) منجر نشود، کل عمليات Rollback خواهد شد.
مراحل پرداخت مشتري:
1- پس از پايان فاز انتخاب کالا، مشتري آمادگي خود را براي پرداخت پول از طريق حساب بانک پارسيان اعلام ميکند، در اين زمان eShop متد زير را از وب سرويس دروازه پرداخت صدا ميزند:
PinPaymentRequest(pin,amount,orderId,callbackUrl,r ef authority,ref status)
Pin (string): پين فروشنده
Amount (integer): رقم پرداخت
OrderId (integer): کد عمليات
CallbackUrl (string): صفحه بازگشت مشتري، پس از انجام عمل پرداخت
Authority (long integer): کد عملياتي دروازه پرداخت که يک کد تصادفي و واحد براي تمامي عمليات آنلاين با
سايتها ميباشد، فروشگاه آنلاين ملزم به ثبت و نگهداري اين کد ميباشد.
Status (byte): کد وضعيت
0: موفق
20, 22: پين فروشنده درست نميباشد
30: عمليات قبلا با موفقيت انجام شده است
34: شماره تراکنش فروشنده درست نميباشد
2- در صورت موفقيت آميز بودن متد فوق، eShop کاربر را به سايت دروازه پرداخت redirect ميکند، authority بعنوان پارامتر Query String با نام au، بايد در انتهاي URL سايت دروازه پرداخت قرار گيرد، بعنوان مثال:
https://www.pec24.com/pecpaymentgate...u=791684761124
از زمان ارسال کاربر به سايت پرداخت، زمان محدودي (حدود 10 دقيقه) مشتري مهلت دارد که عمليات پرداخت خود را در سايت پرداخت بانک، انجام دهد، در غير اينصورت authority کد expire ميشود و در صورت درخواست مجدد، eShop مجددا براي وي درخواست authority کد ميکند.
3- پس از انجام عمليات و يا انصراف، کاربر توسط دروازه پرداخت به سايت فروشگاه آنلاين بازميگردد و کد authority و status عمليات بعنوان Query String به eShop ارسال ميشود. در صورتي که status صفر باشد، eShop ميبايست مجددا از سرور دروازه پرداخت صحت انجام عمليات را سئوال نمايد.
PinPaymentEnquiry(pin, authority, ref status)
چنانچه تا قبل از فراخواني اين متد ارتباط اينترنتي کاربر قطع شود، دروازه پرداخت بصورت اتوماتيک پرداخت وي را ابطال ميکند.
ابطال عمليات (Void)
فروشنده (merchant) ميتواند عمليات پرداخت را تا قبل از تسويه حساب ابطال کند، بدون آنکه هيچگونه بار مالي براي مشتري داشته باشد.
PinVoidPayment(pin, orderId, orderToVoid, ref status)
برگشت عمليات (Reversal)
در صورت بروز اتفاقات ناخواسته، که عمدتا ناشي از نقايص فني و يا قطع ارتباط کاربر با فروشگاه آنلاين، ميباشد، فروشنده ملزم به برگشت عمليات خواهد بود، همانطور که در عمليات Sale توضيح داده شد، در آخرين مرحله eShop از دروازه پرداخت استعلام عمليات خواهد کرد؛ از اين لحظه به بعد چنانچه فروشنده متوجه شود به هر دليلي مشتريش نتيجه عمليات پرداخت خود را مشاهده نکرده، فروشنده عمليات برگشت را انجام ميدهد.
PinReversal(pin, orderId, orderToReversal, ref status)
برگرداندن تمام يا بخشی از مبلغ عمليات (Refund)
فروشنده (merchant) ميتواند در صورت نياز تمام يا بخشي از مبلغ عمليات انجام شده را به حتی بعد از تسويه حساب به مشتری برگرداند، به همين دليل فروشنده بايد دقت مضاعفی به اين مساله داشته باشد.
PinRefundPayment(pin, orderId, orderToRefund, amount, ref status)
تسويه حساب (Settlement)
تسویه حساب به صورت اتوماتیک و روزانه انجام می گیرد. و صورتحساب از طریق بخش مالی و طبق قرارداد به فروشگاه تحویل می گردد.
===================
============================
==================================
اینم اون فایلی که باید در سایت بزارم.باید درش تغییراتی ایجاد کنم اما متاسفانه هر کاری کردم نشد
برای سایت پرداخت هم من میخوام از سبد خرید داخلی سایت استفاده کنم .به این معنی که کاربر خریدش رو در سایتم انجام بده و تنها زمان نهایی خرید و انتخاب روش پرداخت وجه اونو به سایت پرداخت یا بانک پارسیان هدایت کنم
کدهاش برای تک محصول به شکل زیره :
:نمونه مثال براي مشاهده سبد خريد
<a href="http://tehran.Pardakht.com/ShoppingCart/Cart.cfm?
ID=babak_ahadi&ref=http://www.Delphi-Magic.com"> مشاهده سبد خريد </a>
============
: نمونه مثال از اضافه کردن محصول به سبد خريد
<a href="http://tehran.Pardakht.com/ShoppingCart/Cart.cfm?
ID=babak_ahadi&ref=http://www.Delphi-Magic.com&ProdID=001"> Magic Collection 2007 </a>
=============
اما نمیدونم چطور میشه همزمان چندتا پارامتر با سایت ارسال کرد و کاربر مجبور نباشه برای انتخاب هر کالا یه بار سایت پرداخت بره و برگرده
=====
اگه بتونید منو راهنمایی کنید یه دنیا ازتون سپاسگزاری میکنم
با آرزوی موفقیت و سربلندی
من بتازگی با بانک پارسیان و سایت پرداخت قرارداد خرید آنلاین بستم و برای هر دو به مشکل برخوردم
برای بانک پارسیان اونا به من یه فایل پی اچ پی دادند که باید در زمان خرید نهایی در صفحه مورد نظر بزارم و کاربر رو به بانک پارسیان هدایت کنم
البته فایل راهنما هم فرستادند اما متاسفانه نتونستم ازش استفاده کنم
متن فایلها رو در زیر آوردم :
===================================
راهنماي اتصال به سرويس دروازه پرداخت: (نسخه1.2 )
نکات عمومي
• در هر عمليات بانکي از سوي فروشنده، يک کد unique (واحد براي همان فروشنده) تحت نام OrderId، ميبايست به دروازه پرداخت ارسال گردد، جزئيات ارسال آن در توضيحات هر تراکنش بيان خواهد شد.
• پين (pin) فروشنده، شناساگر و نيز کد رمز وي بوده و فروشنده آنلاين ملزم به نگهداري امن اين کد ميباشد، اين کد براي اجراي هر عمليات لازم است.
• پس از اجراي هر عمليات يک کد وضعيت (status) به معني وضعيت فراخواني آن متد، به eShop برگردانده ميشود، که بسته به آن کد فرايند هاي خاص آن بايد صورت گيرد. کد صفر به معني موفقيت آميز بودن عمليات است، ساير کدها براي هر متد در توضيحات متد آمده است.
پرداخت مشتري (Sale)
با انجام اين تراکنش پول از حساب مشتري کم شده و پس از عمليات تسويه حساب به حساب فروشنده واريز ميشود. انجام کامل اين تراکنش مستلزم طي کامل چرخه پرداخت بوده و چنانچه اين روند به آخرين وضعيت (موفقيت و پايان عمليات) منجر نشود، کل عمليات Rollback خواهد شد.
مراحل پرداخت مشتري:
1- پس از پايان فاز انتخاب کالا، مشتري آمادگي خود را براي پرداخت پول از طريق حساب بانک پارسيان اعلام ميکند، در اين زمان eShop متد زير را از وب سرويس دروازه پرداخت صدا ميزند:
PinPaymentRequest(pin,amount,orderId,callbackUrl,r ef authority,ref status)
Pin (string): پين فروشنده
Amount (integer): رقم پرداخت
OrderId (integer): کد عمليات
CallbackUrl (string): صفحه بازگشت مشتري، پس از انجام عمل پرداخت
Authority (long integer): کد عملياتي دروازه پرداخت که يک کد تصادفي و واحد براي تمامي عمليات آنلاين با
سايتها ميباشد، فروشگاه آنلاين ملزم به ثبت و نگهداري اين کد ميباشد.
Status (byte): کد وضعيت
0: موفق
20, 22: پين فروشنده درست نميباشد
30: عمليات قبلا با موفقيت انجام شده است
34: شماره تراکنش فروشنده درست نميباشد
2- در صورت موفقيت آميز بودن متد فوق، eShop کاربر را به سايت دروازه پرداخت redirect ميکند، authority بعنوان پارامتر Query String با نام au، بايد در انتهاي URL سايت دروازه پرداخت قرار گيرد، بعنوان مثال:
https://www.pec24.com/pecpaymentgate...u=791684761124
از زمان ارسال کاربر به سايت پرداخت، زمان محدودي (حدود 10 دقيقه) مشتري مهلت دارد که عمليات پرداخت خود را در سايت پرداخت بانک، انجام دهد، در غير اينصورت authority کد expire ميشود و در صورت درخواست مجدد، eShop مجددا براي وي درخواست authority کد ميکند.
3- پس از انجام عمليات و يا انصراف، کاربر توسط دروازه پرداخت به سايت فروشگاه آنلاين بازميگردد و کد authority و status عمليات بعنوان Query String به eShop ارسال ميشود. در صورتي که status صفر باشد، eShop ميبايست مجددا از سرور دروازه پرداخت صحت انجام عمليات را سئوال نمايد.
PinPaymentEnquiry(pin, authority, ref status)
چنانچه تا قبل از فراخواني اين متد ارتباط اينترنتي کاربر قطع شود، دروازه پرداخت بصورت اتوماتيک پرداخت وي را ابطال ميکند.
ابطال عمليات (Void)
فروشنده (merchant) ميتواند عمليات پرداخت را تا قبل از تسويه حساب ابطال کند، بدون آنکه هيچگونه بار مالي براي مشتري داشته باشد.
PinVoidPayment(pin, orderId, orderToVoid, ref status)
برگشت عمليات (Reversal)
در صورت بروز اتفاقات ناخواسته، که عمدتا ناشي از نقايص فني و يا قطع ارتباط کاربر با فروشگاه آنلاين، ميباشد، فروشنده ملزم به برگشت عمليات خواهد بود، همانطور که در عمليات Sale توضيح داده شد، در آخرين مرحله eShop از دروازه پرداخت استعلام عمليات خواهد کرد؛ از اين لحظه به بعد چنانچه فروشنده متوجه شود به هر دليلي مشتريش نتيجه عمليات پرداخت خود را مشاهده نکرده، فروشنده عمليات برگشت را انجام ميدهد.
PinReversal(pin, orderId, orderToReversal, ref status)
برگرداندن تمام يا بخشی از مبلغ عمليات (Refund)
فروشنده (merchant) ميتواند در صورت نياز تمام يا بخشي از مبلغ عمليات انجام شده را به حتی بعد از تسويه حساب به مشتری برگرداند، به همين دليل فروشنده بايد دقت مضاعفی به اين مساله داشته باشد.
PinRefundPayment(pin, orderId, orderToRefund, amount, ref status)
تسويه حساب (Settlement)
تسویه حساب به صورت اتوماتیک و روزانه انجام می گیرد. و صورتحساب از طریق بخش مالی و طبق قرارداد به فروشگاه تحویل می گردد.
===================
============================
==================================
اینم اون فایلی که باید در سایت بزارم.باید درش تغییراتی ایجاد کنم اما متاسفانه هر کاری کردم نشد
کد:
<?php
// this function is to get proper authority key from Parsian
function gotoParsian () {
include("nusoap/nusoap.php");
$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');
if (!$err = $soapclient->getError())
$soapProxy = $soapclient->getProxy() ;
if ( (!$soapclient) OR ($err = $soapclient->getError()) ) {
$error .= $err . "<br />" ;
echo $error ;
} else {
$amount = intval($_POST['Amount']) ; // here is the posted amount
$orderId = getResNum( .... ) ; // this function is internal which will get order id
$authority = 0 ; // default authority
$status = 1 ; // default status
$callbackUrl = "payment/paid_parsian/" ; // site call back Url
$params = array(
'pin' => ... , // this is our PIN NUMBER
'amount' => $amount,
'orderId' => $orderId,
'callbackUrl' => $callbackUrl,
'authority' => $authority,
'status' => $status
);
$sendParams = array($params) ;
$res = $soapclient->call('PinPaymentRequest', $sendParams);
$authority = $res['authority'];
$status = $res['status'];
if ( ($authority) and ($status==0) ) {
// this is a succcessfull connection
...
...
...
$parsURL = "https://www.pec24.com/pecpaymentgateway/?au=" . $authority ;
redirectToURL ($parsURL) ;
exit() ;
die() ;
return;
} else {
// this is unsucccessfull connection
echo "<p dir=LTR>";
if ($err=$soapclient->getError()) {
echo "ERROR = $err <br /> " ;
}
echo "$authority <br />" ;
echo "$status <br />" ;
echo "$orderId <br />" ;
echo "Couldn't get proper authority key from Parsian" ;
echo "</p>";
}
}
.... // SHOW HTML PART
}
// this function is to Validate Payment
function check_Payment_Parsian () {
include("nusoap/nusoap.php");
$authority = $_REQUEST['au'];
$status = $_REQUEST['rs'];
if ($authority) {
// here we update our database
...
}
if ( ($status==0) and (checkDataBase(...)) ) {
$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');
if ( (!$soapclient) OR ($err = $soapclient->getError()) ) {
// this is unsucccessfull connection
echo $err . "<br />" ;
} else {
$status = 1 ; // default status
$params = array(
'pin' => ... , // this is our PIN NUMBER
'authority' => $authority,
'status' => $status ) ; // to see if we can change it
$sendParams = array($params) ;
$res = $soapclient->call('PinPaymentEnquiry', $sendParams);
$status = $res['status'];
if ($status==0) {
// this is a succcessfull payment
// we update our DataBase
} else {
// this is a UNsucccessfull payment
// we update our DataBase
echo "Couldn't Validate Payment with Parsian " ;
}
}
} else {
// this is a UNsucccessfull payment
}
.... // SHOW HTML PART
}
?>
برای سایت پرداخت هم من میخوام از سبد خرید داخلی سایت استفاده کنم .به این معنی که کاربر خریدش رو در سایتم انجام بده و تنها زمان نهایی خرید و انتخاب روش پرداخت وجه اونو به سایت پرداخت یا بانک پارسیان هدایت کنم
کدهاش برای تک محصول به شکل زیره :
:نمونه مثال براي مشاهده سبد خريد
<a href="http://tehran.Pardakht.com/ShoppingCart/Cart.cfm?
ID=babak_ahadi&ref=http://www.Delphi-Magic.com"> مشاهده سبد خريد </a>
============
: نمونه مثال از اضافه کردن محصول به سبد خريد
<a href="http://tehran.Pardakht.com/ShoppingCart/Cart.cfm?
ID=babak_ahadi&ref=http://www.Delphi-Magic.com&ProdID=001"> Magic Collection 2007 </a>
=============
اما نمیدونم چطور میشه همزمان چندتا پارامتر با سایت ارسال کرد و کاربر مجبور نباشه برای انتخاب هر کالا یه بار سایت پرداخت بره و برگرده
=====
اگه بتونید منو راهنمایی کنید یه دنیا ازتون سپاسگزاری میکنم
با آرزوی موفقیت و سربلندی