دسته‌بندی نشده

کد نویسی زرین پال

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

 

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

 

کل مراحل کد نویسی شامل ۲ بخش هست

۱: صفحه ارسال پارامترها برای زرین پال ” که شامل چند پارامتر اجباری و چند پارامتر اختیاری هست ”

۲: صفحه جواب بعد از پرداخت ” که شامل پرداخت موفق و ناموفق میشه”

شکل کلی صفحه ارسال پارامترها

<?php
$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000;
$Description = 'توضیحات تراکنش تستی'; 
$Email = 'info@daytheme.ir';
$Mobile = '09197134862'; 
$CallbackURL = 'http://www.yoursoteaddress.ir/verify.php';


$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest(
[
'MerchantID' => $MerchantID,
'Amount' => $Amount,
'Description' => $Description,
'Email' => $Email,
'Mobile' => $Mobile,
'CallbackURL' => $CallbackURL,
]
);


if ($result->Status == 100) {
Header('Location: https://www.zarinpal.com/pg/StartPay/'.$result->Authority);
//Header('Location: https://www.zarinpal.com/pg/StartPay/'.$result->Authority.'/ZarinGate');
} else {
echo'ERR: '.$result->Status;
}
?>

در این بخش شما فقط با یک بخش از این کدنویسی ها کار دارید

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000;
$Description = 'توضیحات تراکنش تستی'; 
$Email = 'info@daytheme.ir';
$Mobile = '09197134862'; 
$CallbackURL = 'http://www.yoursoteaddress.ir/verify.php';

که هر کدام از کارکترها باید به شرح زیر پر شود

MerchantID: باید مرچنت کد اختصاصی درگاه خودتون رو توی اون وارد کنید * اجباری

Amount: مبلغ قابل پرداخت توسط مشتری رو باید داخل این فیلد وارد کنید * اجباری

Description: توضیحی کوتاهی از شرح پرداخت مشتری * اختیاری

Email: ایمیل مشتری باید توی این قسمت وارد شود * اختیاری

Mobile: شمار موبایل مشتری باید توی این قسمت وارد شود * اختیاری

CallbackURL: صفحه بازگشت باید توی این قسمت وارد بشه ” این صفحه همون صفحه جواب هست که شامل مقداری کد میشه که در ادامه توضیح داده خواهد شد” * اجباری

 

توجه کنید که پارامترهای اختیاری می تونن خالی باشن و یا برای همه افراد یک چیز باشه.

توجه کنید که مقدایر حتما داخل ” باشن.

توجه کنید که برای صفحه جواب حتما http ویا اگر سایت شما ssl داره https وارد شود

 

نکته: بعد از پر کردن پارمترها باید کد کدها رو داخل یک فایل نوشتاری مثل نوت پد قرار داد و با پسوند .php ذخیره کرد

 

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

 

کد صفحه پاسخ به شرح زیر هست

<?php

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000; 
$Authority = $_GET['Authority'];

if ($_GET['Status'] == 'OK') {

$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentVerification(
[
'MerchantID' => $MerchantID,
'Authority' => $Authority,
'Amount' => $Amount,
]
);

if ($result->Status == 100) {
echo 'Transaction success. RefID:'.$result->RefID;
} else {
echo 'Transaction failed. Status:'.$result->Status;
}
} else {
echo 'Transaction canceled by user';
}

?>

 

در این صفحه لازمه که شما دوباره مریچنت کد و مبلغ ارسالی رو وارد کنید. مقدایر باید در دو خط اول مانند زیر نوشته شود

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000;

بعد از انجام برای شما سه حالت وجود دارد که می توانید آنها را به دلخواه پر نمایید

if ($result->Status == 100) {
echo 'Transaction success. RefID:'.$result->RefID;
} else {
echo 'Transaction failed. Status:'.$result->Status;
}
} else {
echo 'Transaction canceled by user';
}

 

درصورتی که پرداخت موفق بود این قسمت نمایش داده می شود

if ($result->Status == 100) {
echo 'پرداخت شما با موفقیت انجام شد'.$result->RefID;
}

در صورتی که پرداخت به هر دلیلی با شکست مواجه شود

 else {
echo 'پرداخت شما نا موفق بود. لطفا دوباره اقدام نماید'.$result->Status;
}

در صورتی که درخواست پرداخت کنسل شود

 else {
echo 'درخواست شما کنسل شد';
}

توجه کنید که نوشته هایی که توسط ما قرار داده شده است به صورت پیش فرض می بادشد و شما می توانید آنها را با نوشته های دیگر و یا کدهای خود پر نمایید. به فرض مثال می توانید لینک دانلود فایلی را به جای متن پرداخت شما با موفقیت انجام شد قرار دهید

 

سپس کد های این صفحه را هم در یک فایل نوشتاری مانند نوت پد قرار داده و با پسوند .php ذخیره نمایید

نکته: نام هر دو فایل می تواند هر چیزی باشد فقط لازم است که در فایل اول در قسمت CallbackURL نام فایل دوم به صورت دقیق وارد شود

هر دو فایل را هم اکنون می توانید دانلود نمایید

برچسب ها

امیر مقدسی

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن
بستن