如何从响应数组 paypal 中检索多个购物车项目值

how to retrieve multiple cart item values from response array paypal

我正在使用经典 API 并且可以做大部分事情但是我遇到了一个我似乎无法解决的问题。我正在使用 PHP,在我从 GetExpressCheckoutDetails 获得成功 "ACK" 后,我尝试遍历响应数组以获取多个项目,但它不会接受我的代码。 我可以 var_dump 响应数组,它清楚地显示键和值,我可以测试值的输出,它看起来像这样

Item Name = L_PAYMENTREQUEST_0_NUMBER0

Item Name = 45065

Item Name = L_PAYMENTREQUEST_0_NUMBER1

Item Name = 16030

我的 for 循环看起来像这样 其中“$httpParsedResponseAr”是来自 PayPal

的响应数组
$index = 0;
foreach ($httpParsedResponseAr as $key => $value){                  
    if ($key == 'L_PAYMENTREQUEST_0_NAME{$index}'){
      echo '<tr> ';
      echo '<td align="center" bgcolor="#39AD43"> 
              <p>Item Name = '.$key.'</p>
              <p>Item Name = '.$value.'</p>
            </td>';
     echo '</tr>';'
     } 
     $index++;
}

以上return不过,

它将让我 "hard-code" 如下所示的密钥字符串和 return 正确的值

$index = 0;
foreach ($httpParsedResponseAr as $key => $value){                  
    if ($key == 'L_PAYMENTREQUEST_0_NAME0'){
      echo '<tr> ';
      echo '<td align="center" bgcolor="#39AD43"> 
              <p>Item Name = '.$key.'</p>
              <p>Item Name = '.$value.'</p>
            </td>';
     echo '</tr>';'
     } 
     $index++;
}

我的问题是我不知道响应中包含多少项目(添加到买家购物车),所以不知道要使用多少索引号,这就是 foreach 循环的原因。

我也试过了

        if ($key == 'L_PAYMENTREQUEST_0_NAME'.$index){

如何检索这些多个值?

我已经尝试了字符串的所有不同组合,但它们都不起作用。我做错了什么?

提前致谢

index 增量运算符放错了位置,我已将 'L_PAYMENTREQUEST_0_NAME{$index}' 替换为 L_PAYMENTREQUEST_0_NAME$index 或者你也可以使用 "L_PAYMENTREQUEST_0_NAME{$index}".

试试这个对我有用的方法:

$index = 0;
foreach ($httpParsedResponseAr as $key => $value){                  
    if ($key == "L_PAYMENTREQUEST_0_NAME$index"){
      echo '<tr>';
      echo '<td align="center" bgcolor="#39AD43"> 
              <p>Item Name = '.$key.'</p>
              <p>Item Value= '.$value.'</p>
            </td>';
      echo '</tr>';
      $index++;
     } 
}

这是我在SETEC中传递的:

  . "&METHOD=SetExpressCheckout" 
       . "&VERSION=115.0" 
       . "&RETURNURL=http://localhost/justbuy/ec_check.php"
       . "&CANCELURL=http://localhost/justbuy/ec_check.php"
       . "&PAYMENTREQUEST_0_CURRENCYCODE=USD"
       . "&PAYMENTREQUEST_0_ITEMAMT=99.30"
       . "&PAYMENTREQUEST_0_TAXAMT=2.58"
       // . "&localecode=zh_HK"
       . "&PAYMENTREQUEST_0_AMT=101.88"
       . "&PAYMENTREQUEST_0_CURRENCYCODE=USD"
       . "&PAYMENTREQUEST_0_PAYMENTACTION=Sale"
       . "&SOLUTIONTYPE=Sole"

       . "&L_PAYMENTREQUEST_0_NAME0=1 Decaf Kona Blend Coffee  "
       . "&L_PAYMENTREQUEST_0_NUMBER0=623083"
       . "&L_PAYMENTREQUEST_0_QTY0=1"
       . "&L_PAYMENTREQUEST_0_AMT0=9.95 "
       . "&L_PAYMENTREQUEST_0_QTY0=2"

        . "&L_PAYMENTREQUEST_0_NAME1=Coffee Filter bags  "
       . "&L_PAYMENTREQUEST_0_NUMBER1=623084"
       . "&L_PAYMENTREQUEST_0_QTY1=1"
       . "&L_PAYMENTREQUEST_0_AMT1=39.70"
       . "&L_PAYMENTREQUEST_0_QTY1=2";

以及我打印 GETEC 响应时的响应: