我正在使用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 ) 我不明白这个系统错误是什么意思。这个问题的解决方案是什么?任何帮助都将不胜感激。
提前谢谢..
发布于 2020-08-14 12:16:46
根据错误文档,错误501是payTm内部的系统错误。https://developer.paytm.com/docs/refund-status-api/
我猜您使用的是payTm临时服务器。您这边没有问题,我建议您等几个小时后再试。它会自动工作
发布于 2019-05-25 13:39:32
我也面临着同样的问题,因为我在将PAYTM_MERCHANT_KEY传递给getRefundChecksumFromArray之前没有声明它的值
$checkSum = getRefundChecksumFromArray($paramList,PAYTM_MERCHANT_KEY);这行代码解决了这个问题
define("PAYTM_MERCHANT_KEY", "your_key_goes_here");https://stackoverflow.com/questions/52717683
复制相似问题