我如何处理从支付网关的响应数据


How do I handle response data from payment gateway?

我使用PayPal PayFlow Pro支付网关。我已经测试了https://ppmts.custhelp.com/app/answers/detail/a_id/618上给出的PHP/CURL代码,它返回:

HTTP/1.1 200 OK连接:关闭服务器:VPS-3.033.00X-VPS-Request-ID: 20140619132842日期:2014年6月19日星期四20:28:43 GMTContent-type: text/namvalue Content-length: 98结果= 0,PNREF = A71E6C7596B6& RESPMSG = Approved&验证码= 010101,AVSADDR = Y& AVSZIP = Y& CVV2MATCH = Y& IAVS = N

我能把这个响应转换成一个数组或者其他我可以处理的东西吗?我不知道我应该如何处理这些数据,我找不到任何明确的答案,这在测试时工作。

在PHP中这是相当容易的。这里有一个函数可以将其转换为数组

function process_response($str) {
    $data = array();
    $x = explode('&', $str);
    foreach($x as $val) {
         $y = explode('=', $val);
         if(!empty($y[1]))
         $data[$y[0]] = urldecode($y[1]);
    }
    return $data;
}

关于其他数据,这里有一个有根据的猜测,基于PayPal Classic NVP

  • RESPMSG -看起来付款已被批准
  • CVV2MATCH -客户的CVV2(卡号以外的3或4位代码)匹配
  • AVS -邮政编码与计费邮政编码
  • 匹配
  • PNREF -可能是用于此事务的唯一标识符。如果您需要退款,可能会使用。