کلاس پرداخت بانک سامان SBPayment

arashonline

Well-Known Member
saidshp جان از شما ممنونم.

این کد رو باید دقیقا در کجا قرار بدهیم؟
میشه کمی بیشتر برای من توضیح بدهید.
 

HamidP

Member
سعید جان من کلاست رو برای خودم customize کردم میشه بگی کجاهاشو تغییر دادی که من دوباره نخوام تغییرات خودمو بدم.
ممنون
یه مورد دیگه این که پرداخت توی بانک ok میشه اما وقتی به سایت برمی گرده چون چک نمیشه(تابع VerifyTransaction) بانک بعد از فکر کنم 1 ساعت پول رو برگشت می زنه.

با تشکر از آقای حسینی از اینجا می تونید آخرین ورژن library مربوط به nusoap رو دریافت کنید:
http://sourceforge.net/projects/nusoap
 

saidshp

Member
saidshp جان از شما ممنونم.

این کد رو باید دقیقا در کجا قرار بدهیم؟
میشه کمی بیشتر برای من توضیح بدهید.
سلام
شما باید ماژول nusoap رو دانلود کنید و به فرض اون رو تو شاخه inc/ قرار میدید.
بعد یه فایل مثلا payment/class_sbpayment.php در ست کنید. کلاس رو کپی کنید تو این فایل.
خوب شما به یه فایل دیگه احتیاج دارید که با استفاده از اسکریپت زیر از کلاس استفاده کنید.
مثلا فایل shopping_cart/sbpayment.php خوب حالا اسکریپت زیر رو کپی کنید تو این فایل.
PHP:
<?php
ob_start();
header("content-type: text/html; charset=utf-8");

include '../inc/nusoap/lib/nusoap.php';
include '../payment/class_sbpayment.php';


$conn = mysql_connect('localhost','root','');
mysql_select_db('store',$conn);

$sb = new SBPayment("merchantID","password");

if( isset($_POST['State']) ){
    $State  = $_POST['State'];
    $RefNum = $_POST['RefNum'];
    $ResNum = $_POST['ResNum'];
    
    $sb->receiverParams($ResNum,$RefNum,$State);
    $sb->getMsg('display');

} elseif( isset( $_POST['submit'] ) ) {

    if( $sb->saveStoreInfo( $_POST['totalAmont'] ) ) {
        $sb->sendParams();
    } else {
        $sb->getMsg('display');
    }
} else { ?>

    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" />
    مبلغ سفارش<input type="text" name="totalAmont" />
    <input type="submit" name="submit" value="payment" />
    </form>
<?php } ?>

عملکرد.
شما باید یه نمونه از کلاس بسازید و دو پارامت مربوط به بانک رو بهش بدید اول merchantID و دوم password
حالا باید بررسی کنید که اگر سه پارامتر post که از طرف بانک به سایت شما میاد وجود داشته باشه فقط باید این کد اجرا بشه
PHP:
$State  = $_POST['State'];
    $RefNum = $_POST['RefNum'];
    $ResNum = $_POST['ResNum'];
    
    $sb->receiverParams($ResNum,$RefNum,$State);
    $sb->getMsg('display');

در غیر این صورت اگر شما کاربر رو بخواهید برای پرداخت هدایت کنید فقط باید مبلغ کل سفارش رو به متد saveStoreInfo بدید و بعد هم باید خریدار رو به سایت بانک بفرستید به این صورت.
PHP:
if( $sb->saveStoreInfo( $_POST['totalAmont'] ) ) {
        $sb->sendParams();
    } else {
        $sb->getMsg('display');

اگر هم هیچ یک از اینها روی نده باید فرم رو نمایش بدیم

بقیه هم که تو پست اول توضیح دادم در ضمن فایل راهنما رو بخونید .

موفق باشید
 

Expon

Member
یک سوال داشتم
با اجازه
اگه من مشتری رو به سایت بانک سامان بفرستم چطوری باید باحبر شم که تراکنش کامل انجام شده یا نه ؟
 

Expon

Member
سلام

اگه من مشتری رو به سایت بانک سامان هدایت کنم از کجا باید باخبر شم که تراکنش کاملا انجام شده یا نه ؟
 

arashonline

Well-Known Member
سلام
شما باید ماژول nusoap رو دانلود کنید و به فرض اون رو تو شاخه inc/ قرار میدید.
بعد یه فایل مثلا payment/class_sbpayment.php در ست کنید. کلاس رو کپی کنید تو این فایل.
خوب شما به یه فایل دیگه احتیاج دارید که با استفاده از اسکریپت زیر از کلاس استفاده کنید.
مثلا فایل shopping_cart/sbpayment.php خوب حالا اسکریپت زیر رو کپی کنید تو این فایل.

موفق باشید
دوست عزیزمیشه در مورد این فایل nusoap بیشتر توضیح دهید. ممنونم
فایل راهنما رو از کجا بگیرم.
 

imanmir

Member
سلام دوستان
چه طوری می تونم کد های شما رو تست کنم
روی local یا روی اینترنت ؟
به صورت مجازی می شه یا باید حتما ای پی بانکی را داشته باشیم
راستی آیا ssl کاربردی دارد به انجام امنیت این کار ؟
 

saidshp

Member
سلام
برای تایید پرداخت باید با بانک قرارداد بست که ip سایت رو ثبت کنن.
خود بانک از ssl استفاده میکنه.
به طور مجازی هم که نمیشه چون باید حتما یه چند تا بخشنامه صادر بشه و یه یکی دوساعتی زحمت بکشن کد بنویسن همین.
موفق باشید
 

arashonline

Well-Known Member
خب سعید جان پس این کدی که شما نوشتیدی برای چیه !
خود بانک مگه اینو درست نمیکنه بعد از قرار داد؟
 

arashonline

Well-Known Member
مگر خود بانك بعد از بررسي سيستم خودش كد نويسي رو درست نميكنه ؟
 

saidshp

Member
بانک فقط خدمات پرداخت رومیده برنامه نویسی به عهده صاحب سایت هست
شما اون فایل pdf که لینک دادم رو با دقت بخونید همه چیز رو متوجه میشید
 

imanmir

Member
آیا کسی تست شده یک کد سالم را داده
آخه در این بحث خیلی کد رد و بدل شد و چون نمی تونیم تست کنیم یک کسی که کدش تست شده و درست هستش لطفا کد بده و یک دمو هم اگه می تونه بذاره
و کدوم یکی از بانک ها را انتخاب کنیم
چه طوری می تونیم مطمئن بشیم که پول انتفال یافته
ااگه هک بشه بانک مسئوله یا ما
 

HamidP

Member
من sample خود بانک رو هم تست کردم همه چیز درسته اما تابع VerifyTransaction مقدار -18 که مربوط به ip فروشنده میشه رو بر می گردونه میگه: "فروشنده نامعتبر است ip address" در صورتیکه من با بانک صحبت کردم ip توی بانک هم درست set شده اما نمی دونم چرا این خطا رو بر می گردونه! بانک می گه احتمال نداره دلیل دیگه ای داشته باشه نمی دونم مشکل از کجاست!
اگر کسی می دونه لطف کنه کمک کنه
ممنون
 

saidshp

Member
سلام
فکر کنم 48 ساعت بعد از قرار داد ip فعال میشه اگه مدتش بیشتره که مشکل چیز دیگه اس
 

websamancom

Well-Known Member
من sample خود بانک رو هم تست کردم همه چیز درسته اما تابع VerifyTransaction مقدار -18 که مربوط به ip فروشنده میشه رو بر می گردونه میگه: "فروشنده نامعتبر است ip address" در صورتیکه من با بانک صحبت کردم ip توی بانک هم درست set شده اما نمی دونم چرا این خطا رو بر می گردونه! بانک می گه احتمال نداره دلیل دیگه ای داشته باشه نمی دونم مشکل از کجاست!
اگر کسی می دونه لطف کنه کمک کنه
ممنون

سلام دوست عزیز دو حال پیش میاد یکی امکان داره آی پی سرور شما عوض شده باشه و دیگری اینکه آی پی شما در بانک سامان اشتباه ست کردن که دومی امکانش بیشتر چون بارها برای فروشگاه هایی که راه اندازی کردم این اتفاق افتاده به بانک مراجعه کنید برای اطمینان بیشتر به لینک http://acquirer.sb24.com/MerchantService/jsp/loginPage.jsp
بروید و بعد از وارد کردن مرچند و پسوورد خود ببینید اگه خرید تستی که انجام دادید نوشته برگشت خورده حتما دو حالت فوق اتفاق افتاده
 

جدیدترین ارسال ها

بالا