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

时间:2015-04-02 06:39:04

标签: php paypal foreach paypal-sandbox

我正在使用经典的API并且可以做大多数事情但是我遇到了一个我似乎无法解决的问题。我正在使用PHP并且在我获得成功" ACK"来自GetExpressCheckoutDetails我尝试循环响应数组以获取多个项目,但它不接受我的代码。 我可以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++;
}

上面没有返回任何内容,

它会让我&#34;硬编码&#34;像下面的键字符串,并返回正确的值

$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){

如何检索这些多个值?

我已尝试过字符串的所有不同组合,但它们无效。我做错了什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

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回复时的响应:

enter image description here