使用来自贝宝的帖子数组

Posted

技术标签:

【中文标题】使用来自贝宝的帖子数组【英文标题】:Using post array from paypal 【发布时间】:2010-12-20 22:32:06 【问题描述】:

我正在使用 paypal 在我的网站上处理付款。 Paypal 返回 post 数组,如

[item_number1] =12
[item_name1] = My product name
[quantity1] =3
[item_number2] =14
[item_name2] = My product name2
[quantity2] =5
[num_cart_items] 2

现在在这里插入步骤,我只是在兜圈子,无处可去

然后运行for循环

for($i = 1;$i <= $num_cart_items ;$i++)
        $x = 'item_number' . $i;
        $y = 'item_name' . $i;
        $z = 'quantity' . $i;


        $new_amount = $row['stock_quantity'] - $$z;
        $db->update1_by_match('cart_products','stock_quantity',$new_amount,'id',$$x);

    

我在处理这些变量时遇到了问题。有没有更好的方法来做到这一点?

谢谢 安德鲁

【问题讨论】:

post 变量是全局变量吗?为什么不直接从 $_POST 引用它们? 【参考方案1】:

我会更改您修改后的代码以直接使用 $_POST,例如

for($i = 1;$i <= $_POST['num_cart_items'] ;$i++)

   $item_number= intval($_POST['item_number' . $i]);
   $item_quantity= intval($_POST['quantity' . $i]);

   printf("DEBUG: item %d item:%d quantity:%d<br>", $i, $item_number, $item_quantity);

   $new_amount = $row['stock_quantity'] - $item_quantity;
   $db->update1_by_match('cart_products','stock_quantity',$new_amount,'id', $item_number);


诊断输出应该可以帮助您确定事情的发展方向。

早期问题 - 下面的注释指的是在对问题进行完整修订之前的问题。

你真正需要的是一个数组,而不是试图使用可变变量

$item_numbers=array(24, 16);

foreach ($item_numbers as $item_number) 
    $result = $db->get_cols_by_match('cart_products','stock_quantity','id', $item_number);

按照你的方式做,这样的事情可能会澄清它

$item_number1='24';
$item_number2='16';
$num_cart_items = 2

for($i = 1;$i <= $num_cart_items ;$i++)                
    $varname='item_number' . $i;
    printf("DEBUG: %s = %s<br>", $varname, $$varname);

    $result = $db->get_cols_by_match('cart_products','stock_quantity','id', $$varname);

$$varname 是 variable variable 的示例,但在您的情况下,数组以更清晰的方式声明您的意图。

【讨论】:

不应该是$varname="item_number" . $i;吗? 我已经简化了这个问题。 item_number1 和 item_number2 来自贝宝,所以我无法控制。你建议的第二种方式是我需要的,很明显,我应该去睡觉了 那行不通。我认为这有点不对劲 那么问题可能更深,在 get_cols_by_match 内部,我将使用诊断输出修改代码以“证明”该方法至少从这些变量中获取值。 谢谢你,我明天试试看是否有效

以上是关于使用来自贝宝的帖子数组的主要内容,如果未能解决你的问题,请参考以下文章

当人们作为客人结账时如何管理来自贝宝的响应。没有贝宝账户

处理完某件商品的付款后,您能否收到来自贝宝的数据/代码?

贝宝定期付款重定向到贝宝的主页

WHMCS - 如何获取到贝宝的付款链接

如何获取贝宝的实时 api 凭据?

使用贝宝的点对点/自适应支付[关闭]