如何从响应数组 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 响应时的响应:
我正在使用经典 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 响应时的响应: