由于我不太清楚如何处理和处理包含多个项目的购物车的数组,因此我的PHP自定义Paypal IPN脚本遇到了一些问题。
我想要实现的是,对于每个产品,都会使用其唯一ID向服务器发出POST调用以减少该产品的库存计数。
Paypal IPN将商品编号发回item_number_1
,item_number_2
,item_number_3
等,我可以通过以下方式获取数据:
$id_exp = $_POST['/^item_number(\d*)$/'];
$qty_exp = $_POST['/^quantity(\d*)$/'];
我需要做的是让$id_exp
成为一个数组,并为每个产品运行file_get_contents
以POST到具有ID的网址,而QTY是否可以实现?
简而言之,最终结果是IPN脚本访问我的股票监听器(并在此处仅使用GET进行演示):http://www.site.com/listener?prod_id=12345&decrement=3
更新:我现在已正确打印项目ID数组,如123,456,789
,存储在名为$id_string
的var中,现在我正在尝试为数组中的每个ID运行以下内容:
foreach ($id_string as $value){
$url = 'http://myserver.com';
$data = array('product_id' => $value, 're_stock' => 'true');
$get = array();
foreach($data as $k => $v){
$post[] = $k . '=' . urlencode($v);
}
$post = implode('&', $post);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $post
)
);
$context = stream_context_create($opts);
file_get_contents($url, false, $context);
}
但是,没有任何事情发生。任何反馈都在此阶段受到赞赏。
答案 0 :(得分:0)
这样的东西?
$id_exp = array();
foreach (preg_grep('~^item_number[0-9]+$~', array_keys($_POST)) as $key)
{
$id_exp[preg_replace('~^item_number([0-9]+)$~', '$1', $key)] = $_POST[$key];
}
print_r($id_exp);