PDA

View Full Version : نمونه کد اتصال به درگاه بانک سامان



under22
چهارشنبه 09 اردیبهشت 1394, 13:52 عصر
مستندات فنی درگاه سامان رو گرفتم ولی قسمت PHP فقط یه مثال برای وریفای کردن داره فقط . تو تالار و گوگل خیلی گشتم ولی چند تا کد قدیمی پیدا کردم .
دوستانی که نمونه کد برای اتصال به درگاه بانک سامان رو دارند لطفا نمونه کد بزارند .

under22
چهارشنبه 09 اردیبهشت 1394, 21:15 عصر
دوست عزیز وریفای که کاری نداره . درسته درگاه گرفتم ولی فقط نمونه کد وریفای رو دادن .
قصد دارم از روش توکن که جدید هست استفاده کنم تو مستنداتش کامل مطالعه کردم مشکلم نمونه کد هست

under22
پنج شنبه 10 اردیبهشت 1394, 08:39 صبح
کسی نبود یه درگاه سامان نوشته باشیم

under22
پنج شنبه 10 اردیبهشت 1394, 17:15 عصر
واقعا جالبه هیچکسی نیست جواب بنده رو بده . نمونه کد با استفاده از توکن برای بان سامان رو مد نظرم هستی هر کسی از دوستان نمونه داره بزاره

omidrezav
دوشنبه 23 آذر 1394, 11:24 صبح
سلام دوست عزیز
شاید یه مقدار دیر باشه برای جواب دادن به سوال شما منتهی از اون جهت که این سوال ممکنه برای خیلی های دیگه هم پیش اومده باشه لازم دیدم در حد توان خودم پاسخ بدم.

من خودم قبلا یکبار به این مشکل برخوردم و به قدری اذیت شدم که ملا قضیه رو کنسل کردم و از پرداخت بدون token استفاده کردم. منتهی اخیرا برای یکی از مشتریانم ناگزیر از استفاده از پرداخت با token بودم. بعد از بررسی اولیه وب سرویس درگاه پرداخت سامان به آدرس https://acquirer.samanepay.com/payments/referencepayment.asmx دیدم که این وب سرویس اصولا متدی برای درخواست token نداره. و وقتی که یکبار دیگه به دقت مستندات رو خوندم دیدم که برای درخواست token باید از وب سرویس دیگه ای به این آدرس استفاده بشه: https://sep.shaparak.ir/Payments/InitPayment.asmx
این وب سرویس فقط یک متد داره و اون هم متد RequestToken (https://sep.shaparak.ir/Payments/InitPayment.asmx?op=RequestToken) هست.

به طور خلاصه: شما باید اول از طریق وب سرویس https://sep.shaparak.ir/Payments/InitPayment.asmxد درخواست token کنید و کاربر رو با token به درگاه پرداخت بفرستید ولی بعد از بازگشت کاربر از درگاه پرداخت و به منظور تایید تراکنش باید از وب سرویس https://acquirer.samanepay.com/payments/referencepayment.asmx استفاده کنید.

ebrahim.abbasi
دوشنبه 11 تیر 1397, 11:58 صبح
دیر شده ولی شاید برا کسی پیش بیاد . با این مستنداتی ک بانک سامان میده حتما پیش میاد.
منم همچین مشکلی داشتم، به پشتیبانیش هم زنگ زدم گفت همینه ک هست

نمونه کد وریفای رو میزارم خودم ازش استفاده کردم. آخرین ورژنش هست. البته php شما باید از soap پشتیبانی کنه. اگه ن باید از nusoap استفاده کنید.



$State=$this->NP->params->post('State');
$RefNum=$this->NP->params->post('RefNum');
$MID='از بانک دریافت می شه';
$userName='از بانک دریافت می شه';
$password='از بانک دریافت می شه';

if($State=='OK'){
if(storeInDatatBase($RefNum)){ // آیا این رسید دیجیتالی قبلا استفاده شده. توجه نمایید ک این تابع باید توسط خودتان نوشته شود این تابع باید چک کند ک کسی قبلا از این رسید دیجیتالی استفاده نکرده .
echo('خطا - از این رسید دیجیتالی قبلا استفاده شده');
}else{
try {
$client = new SoapClient('https://sep.shaparak.ir/payments/referencepayment.asmx?WSDL', array('encoding' => 'UTF-8'));
$result=$client->verifyTransaction($RefNum,$MID);

if ($result > 0)
{
if($amount <> $result){
echo('خطا - مبلغ پرداختی با مبلغ فاکتور همخوانی ندارد.');

$client->reverseTransaction($RefNum,$MID,$userName,$passwor d); // بازگشت تراکنش
}else{
echo 'تراکنش با موفقیت انجام پذیرفت.';
}
}
else //khata
{
echo('خطا به وجود آمده کد خطا - '.$result);
}
}
catch (SoapFault $e) {
echo('خطا در فراخوانی وب سرویس');
}
}
}else{
echo('خطا به وجود آمده - '.$State);
}



باشد ک رضایت شما را بدست آورد.
و من الله توفیق

tecboomb
دوشنبه 25 تیر 1397, 18:16 عصر
دیر شده ولی شاید برا کسی پیش بیاد . با این مستنداتی ک بانک سامان میده حتما پیش میاد.
منم همچین مشکلی داشتم، به پشتیبانیش هم زنگ زدم گفت همینه ک هست

نمونه کد وریفای رو میزارم خودم ازش استفاده کردم. آخرین ورژنش هست. البته php شما باید از soap پشتیبانی کنه. اگه ن باید از nusoap استفاده کنید.



$State=$this->NP->params->post('State');
$RefNum=$this->NP->params->post('RefNum');
$MID='از بانک دریافت می شه';
$userName='از بانک دریافت می شه';
$password='از بانک دریافت می شه';

if($State=='OK'){
if(storeInDatatBase($RefNum)){ // آیا این رسید دیجیتالی قبلا استفاده شده. توجه نمایید ک این تابع باید توسط خودتان نوشته شود این تابع باید چک کند ک کسی قبلا از این رسید دیجیتالی استفاده نکرده .
echo('خطا - از این رسید دیجیتالی قبلا استفاده شده');
}else{
try {
$client = new SoapClient('https://sep.shaparak.ir/payments/referencepayment.asmx', array('encoding' => 'UTF-8'));
$result=$client->verifyTransaction($RefNum,$MID);

if ($result > 0)
{
if($amount <> $result){
echo('خطا - مبلغ پرداختی با مبلغ فاکتور همخوانی ندارد.');

$client->reverseTransaction($RefNum,$MID,$userName,$passwor d); // بازگشت تراکنش
}else{
echo 'تراکنش با موفقیت انجام پذیرفت.';
}
}
else //khata
{
echo('خطا به وجود آمده کد خطا - '.$result);
}
}
catch (SoapFault $e) {
echo('خطا در فراخوانی وب سرویس');
}
}
}else{
echo('خطا به وجود آمده - '.$State);
}



باشد ک رضایت شما را بدست آورد.
و من الله توفیق








سلام آقای عباسی
ممنون میشم اگه شما اتصال به بانک سامان رو کامل دارید توی همین پست برای ما قرار بدین، فراخوانی سرویس ها و ذخیره نتایج تراکنش در بانک اطلاعاتی، متاسفانه هیچگونه مستنداتی در وب پیدا نمیشه و ما هم در بازگشت نتایج تراکنش موفق از بانک سامان به مشکل برخوردیم
با تشکر

charcharkh
سه شنبه 26 تیر 1397, 09:27 صبح
خب کاری نداره زنگ بزنید پشتیبانی سامان و مسئله رو بگید خوودون بایست درستش کنند اینجوری بهتر هست و متوجه اشتباهشون هم میشن که کد هاشون عملیاتی نیست.
همین مشکل رو بنده با بانک ملت داشتم که البته با پیگیری و کدهای جدیدی که دادند رفع شد.

MiladWorkShop
سه شنبه 26 تیر 1397, 13:20 عصر
سلام

اینو برسی کنید : https://vrl.ir/QePaBA

MiladWorkShop
سه شنبه 26 تیر 1397, 13:21 عصر
همچنین برای برسی کدهای خطا میتونید از این آدرس استفاده کنید : https://miladworkshop.ir/errorcode.html