زمان کنونی: 2019/09/22، 04:40 PM درود مهمان گرامی! (ورودثبت نام)
کاربران عزیز برای طرح هر گرونه سوال مرتبط با موضوع انجمن لطفا ابتدا در انجمن عضو شده و سپس با ورود ب بخش مورد نظر سوالتان را مطرح کنید.



امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش اتصال ربات تلگرام به درگاه زرین پال
#1
برای اتصال ربات تلگرامی خود به درگاه زرین پال به شکل زیر عمل کنید

ابتدا تابع pay را به شکل زیر در سورس ربات خود تعریف کنید


کد php:
function pay($chat_id,$Amount){
    
$client 
= new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);
$result $client->PaymentRequest(
[
'MerchantID' => "مرچنت کد",
'Amount' => $Amount,
'Description' => "موضوع پرداخت",
'Email' => 'Email@Mail.Com',
'Mobile' => '09360000000',
'CallbackURL' => "adress/back.php?id=$chat_id&amount=$Amount",
]);
if (
$result->Status == 100){return "https://www.zarinpal.com/pg/StartPay/".$result->Authority."/ZarinGate";}
}
  

برای استفاده از این تابع کافیست میزان پرداختی مورد نظر را به همراه ایدی عددی کاربر در تلگرام به این تابع بفرستید تا کاربر به درگاه پرداخت شما هدایت شود.

برای این کار در ربات خود دکمه ای را با عنوان مثلا "شارژ حساب" تعریف کنید و پاسخ این دکمه را به صورت زیر تعریف کنید:

کد php:
elseif ($text == 'شارژ حساب'){
sendMessage($chat_id,'? درحال ساخت لینک پرداخت...');
bot('sendmessage',[
'chat_id'=>$chat_id,
'text'=>"
⚠️ برو روی مبلغ دلخواه کلیک کنید سپس به صفحه پرداخت می روید و پس از پرداخت وجه اتوماتیک حساب شما شارژ میشود.

?  پس از پرداخت حتما صبر کنید تا پیام حساب شما شارژ شد برای شما نمایش داده شود و تا این پیام را دریافت نکردید صفحه مرورگر را نبندید تا تراکنش شما کامل شود و حسابتان شارژ شود.
"
,
'parse_mode'=>'HTML',
'reply_markup'=>json_encode([
'inline_keyboard'=>[
[[
'text'=>"? 2,000 تومان",'url'=>pay($chat_id,'2000')],['text'=>"? 3,000 تومان",'url'=>pay($chat_id,'3000')]],
[[
'text'=>"? 4,000 تومان",'url'=>pay($chat_id,'4000')],['text'=>"? 5,000 تومان",'url'=>pay($chat_id,'5000')]],
[[
'text'=>"? 10,000 تومان",'url'=>pay($chat_id,'10000')],['text'=>"? 20,000 تومان",'url'=>pay($chat_id,'20000')]],
]
])
]);


اکنون وقتی کاربر دکمه "شارژ حساب" را بزند در پاسخ به او لینک های پرداخت با قیمت های متفاوت نمایش داده خواهد شد و کاربر می توانید هر کدام را انتخاب کنید.
وقتی کاربر قیمت مورد نظرش را انتخاب کرد، قیمت مورد نظر به همراه ایدی عددی او به تابع pay فرستاده می شود و کاربر به صفحه پرداخت هدایت خواهد شد تا مبلغ مورد نظر را بپردازد.

بعد از اینکه کاربر پرداخت مورد نظر را انجام داد شما باید در ربات خود حساب کاربری فرد مورد نظر را شارژ کنید و یا امکاناتی را ک در نظر دارید در اختیارش قرار دهید.

برای این کار در فولدر های ربات خود فایلی را با عنوان back.php تعریف کنید و ادرس ان را در تابع pay به خط زیر قرار دهید

کد php:
adress/back.php 

به عنوان مثال 

کد php:
hbportal.ir/bot/back.php 

وقتی پرداخت انجام شد نتیجه پرداخت به همراه قیمت پرداختی و ایدی کاربر از طریق زرین پال به ادرس فایل back.php برگردانده می شود و شما می توانید بر حسب نتیجه پرداخت (موفق یا ناموفق) تصمیم گیری کنید.

در فایل back.php متغیر های زیر را تعریف کنید:

کد php:
$MerchantID "مرچنت کد";
$Amount $_GET['amount'];
$Authority $_GET['Authority'];
$user $_GET['id']; 

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

کد php:
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 'پرداخت با موفقیت انجام شد و حساب شما شارژ شد';
        
// دستورات برای حالتی ک پرداخت موفق بوده است را اینجا وارد کنید
 
   } else {
 
       echo 'پرداخت شما قبلا ثبت شده است';
        
// دستور برای پرداخت های تکراری
 
   }
} else {
 
   echo 'پرداخت انجام نشد';
     
//دستورات برای حالتی که پرداخت ناموفق بوده را اینجا وارد کنید


امضاء hamzeh
لیست خدمات ما در تلگرام



شماره تماس

09172088446

پاسخ




کاربرانِ درحال بازدید از این موضوع: 1 مهمان