正确分析PayPal项目返回的值


Parse PayPal items returned values properly

我正在我的网站上集成一种贝宝支付方式,我运行得很好,我被贝宝发送到我的返回URL,其中包含有关客户和购买物品的信息。

我在确认阵列上得到以下结构

Array
(
    some customer info
    ...
    [L_NAME0] => Frame%20Rojo
    [L_NAME1] => External%20Hard%20Disk
    [L_NUMBER0] => PD1002
    [L_NUMBER1] => PD1003
    [L_QTY0] => 1
    [L_QTY1] => 1
    [L_TAXAMT0] => 0%2e00
    [L_TAXAMT1] => 0%2e00
    [L_AMT0] => 29%2e00
    [L_AMT1] => 100%2e00
    ...
)

我感兴趣的是将整个项目列表、数量和价格保存到我的数据库中,这样我以后就可以跟踪发送的内容和未发送的内容。

我的问题是,正如你所看到的,贝宝会向我返回一组名称为"something+n"(L_NUMBER0等)的值,所以,我不能在我的DDBB上设置一个表,因为我不知道用户会得到多少项目。我可以把它保存在两个表上:purchase和items_per_purchase之类的结构,但我仍然面临解析该数组的问题。

最好的方法是什么来浏览它,看看每次购买有多少物品可以保存?

我想到了某种能看到的海盗:

while(if(isset($_GET['L_NUMBER'.$cont]))) {
    // save to ddbb
    L_NAME.$cont
    L_NUMBER.$cont
    ...
    cont++
} 

并增加一些计数器,但我想知道是否有更好的解决方案。

我认为您的解决方案很好,尽管在while测试中不需要if。。。

$cont = 0;
while (isset($_GET['L_NUMBER' . $cont])) {
    // save to database after assembling array keys as follows...
    // L_NAME . $cont
    // L_NUMBER . $cont
    // etc.
    cont++;
}

而且您永远不应该相信来自$_GET的输入。我建议在PDO中使用参数化查询。