Php 如何处理来自支付网关的响应数据?

Php 如何处理来自支付网关的响应数据?,php,paypal,payment-gateway,payflowpro,Php,Paypal,Payment Gateway,Payflowpro,我正在使用PayPal PayFlow Pro支付网关。我已经测试了上给出的PHP/CURL代码,它返回: HTTP/1.1 200正常连接:关闭服务器:VPS-3.033.00 X-VPS-Request-ID:20140619132842日期:2014年6月19日星期四20:28:43 GMT 内容类型:文本/名称值内容长度:98 结果=0&PNREF=A71E6C7596B6&RESPMSG=Approved&AUTHCODE=010101&AVSADD=Y&AVSZIP=Y&CVV2MA

我正在使用PayPal PayFlow Pro支付网关。我已经测试了上给出的PHP/CURL代码,它返回:

HTTP/1.1 200正常连接:关闭服务器:VPS-3.033.00 X-VPS-Request-ID:20140619132842日期:2014年6月19日星期四20:28:43 GMT 内容类型:文本/名称值内容长度:98 结果=0&PNREF=A71E6C7596B6&RESPMSG=Approved&AUTHCODE=010101&AVSADD=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;
}
至于其他数据,这里有一个有根据的猜测,基于贝宝经典NVP

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