我在php中使用paytm退款api。
这是我的代码:
$checkSum = "";
$paramList = array();
// Create an array having all required parameters for creating checksum.
$paramList["MID"] = '**********';
$paramList["ORDERID"] = '*******'; //get during paytm transaction response
$paramList["TXNTYPE"] = 'REFUND';
$paramList["REFUNDAMOUNT"] = '50';
$paramList["TXNID"] = '***********'; // get during paytm transaction response
$paramList["REFID"] = 'REFID'.time();
//Here checksum string will return by getChecksumFromArray() function.
$checkSum = getRefundChecksumFromArray($paramList,PAYTM_MERCHANT_KEY);
$paramList["CHECKSUM"] = urlencode($checkSum);
$data_string = 'JsonData='.json_encode($paramList);
// initiate curl
$ch = curl_init();
$url = 'https://securegw-stage.paytm.in/refund/HANDLER_INTERNAL/REFUND';
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, true); // tell curl you want to post something
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string); // define what you want to post
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$output = curl_exec ($ch); // execute
$info = curl_getinfo($ch);
$data = json_decode($output, true);
print_r($data);
这是回应,我得到了:
Array ( [RESPCODE] => 501 [RESPMSG] => System Error. [STATUS] => PENDING )
我没有明白这个系统错误的含义。解决方案是什么?任何帮助将不胜感激。
先谢谢了。
答案 0 :(得分:1)
根据错误doc错误501,是payTm内部的系统错误。 https://developer.paytm.com/docs/refund-status-api/
我猜您正在使用payTm登台服务器。您的身边没有错,建议您等待几个小时,然后重试。它会自动工作
答案 1 :(得分:0)
我遇到了同样的问题,因为我没有声明PAYTM_MERCHANT_KEY的值 在将其传递给getRefundChecksumFromArray
之前$checkSum = getRefundChecksumFromArray($paramList,PAYTM_MERCHANT_KEY);
这行代码解决了它
define("PAYTM_MERCHANT_KEY", "your_key_goes_here");