即时通讯编写表单将数据发布到paypal,这工作正常,我创建带有隐藏字段的表单,然后提交一切提交到贝宝提交按钮。自动提交表单(cURL)
但是,当用户单击该按钮时,我想要做的更多,例如在数据库中更改其购物车状态。所以,我希望能够在点击提交时执行一些代码,然后将数据发布到paypal。
我不想为此使用JavaScript。
我现在的方法是使用cURL,表单发回到当前页面,然后检查$ _POST数据,执行其他命令,如更新购物车的状态,然后创建一个curl命令,以及将表单数据发布到paypal。现在,它已成功发布,但浏览器不会关闭到贝宝。
起初我只是退回一个字符串的结果,然后回显出来,我可以看到该帖子成功,然后我设置CURLOPT_FOLLOWLOCATION为1假设这会让浏览器去贝宝,但它没有,它似乎做的是从贝宝中抓取一些东西,并把它放在我的页面上。
使用cURL是正确的吗?如果是这样,我该如何解决这个问题?我想远离javascript,因为只有启用了javascript的用户才能更新购物车。
用于curl的im代码位于下方,post_data是我创建的数组,然后将键值对读入post_string。
//Set cURL Options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_connection, CURLOPT_MAXREDIRS, 20);
//Set Data to be Posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//Execute Request
curl_exec($curl_connection);
谢谢,我希望我不会在贝宝的回调中做到这一点,我想设置一个购物车的状态,因为它发送到PayPal和一个时,它返回只是因此能准确跟踪进度,并帮助纠正任何错误,虐待尝试设置一些HTTP标题,并看到,但我可能只需要在回调中做。我只是假设自动提交表单并遵循该操作会更容易。 – cast01 2010-04-07 12:43:21
我想你仍然可以为那些已启用javascript的用户执行这两种操作。对于那些没有启用JavaScript的用户,只能使用回调,但对于那些已启用javascript的用户(大多数),您可以在ajax调用中设置'going-to-paypal'标志,并将'set'设置为'complete'国旗在回调中。 – 2010-04-07 13:07:57