带有 PHP 数组的 Paypal NVP TransactionSearch

Posted

技术标签:

【中文标题】带有 PHP 数组的 Paypal NVP TransactionSearch【英文标题】:Paypal NVP TransactionSearch with PHP Array 【发布时间】:2012-08-18 03:13:27 【问题描述】:

您好,我正在使用 paypal API 执行查询,我的问题涉及一个数组并检索密钥的值(这是动态的)我知道查询有效并且凭据很好,因为返回了以下数组:

array(2) 
["L_TRANSACTIONID0"]=>
string(17) "9FX81733DJ079610B"
["L_TRANSACTIONID1"]=>
string(17) "5E083945JC6368706"
["L_TRANSACTIONID2"]=>
string(17) "7SP75180Y9281954W"

我想在 foreach 循环中分解每个键,但每个键都是动态的(注意每个键的计数)。 这如何在 foreach 循环中完成? 谢谢,

【问题讨论】:

foreach ($array as $key => $value)? 【参考方案1】:

前几天我刚刚回答了一个类似的问题,所以可能是重复的。无论如何,如果这对某人有帮助,请执行以下操作:

function process_response($str)

    $data = array();
    $x = explode("&", $str);

    foreach($x as $val)
    
        $y = explode("=", $val);

        preg_match_all('/^([^\d]+)(\d+)/', $y[0], $match);

        if (isset($match[1][0]))
        
            $text = $match[1][0];
            $num = $match[2][0];

            $data[$num][$text] = urldecode($y[1]);
        
        else
        
            $text = $y[0];
//          $data[$text] = urldecode($y[1]);
        
    

    return $data;

只需将 curl 调用的结果输入到这里,并将结果作为格式化数组。

注意注释掉的行,有一些字段是全局的,例如版本,如果你想要这些,取消注释,但是你可能需要在下游调整一些格式代码。

作为一个如何使用它的例子,假设你想把它输入到 phpExcel 对象中,你可以这样做:

    $response = your_curl_call($request);
    $data = process_response($response);

    $index = 1;
    foreach($data as $row)
    
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$index, $row['L_TIMESTAMP'])
            ->setCellValue('B'.$index, $row['L_TIMEZONE'])
            ->setCellValue('C'.$index, $row['L_TYPE'])
            ->setCellValue('D'.$index, $row['L_EMAIL'])
            ->setCellValue('E'.$index, $row['L_NAME'])
            ->setCellValue('F'.$index, $row['L_TRANSACTIONID'])
            ->setCellValue('G'.$index, $row['L_STATUS'])
            ->setCellValue('H'.$index, $row['L_AMT'])
            ->setCellValue('I'.$index, $row['L_CURRENCYCODE'])
            ->setCellValue('J'.$index, $row['L_FEEAMT'])
            ->setCellValue('K'.$index, $row['L_NETAMT']);
        $index++;
    

【讨论】:

以上是关于带有 PHP 数组的 Paypal NVP TransactionSearch的主要内容,如果未能解决你的问题,请参考以下文章

带有php错误的Paypal NVP

带有更多非定期参考交易的 PayPal 账单协议

带有组合过滤器的 PayPal NVP API TransactionSearch

Paypal Pro NVP 沙盒 PHP 支付不可能

PayPal NVP API:创建定期付款

Paypal NVP 身份验证失败