cas*_*t01 5 php forms curl paypal
我正在写一个表格将数据发布到paypal,这很好用,我用隐藏字段创建表单,然后有一个提交按钮,提交一切到paypal.
但是,当用户单击该按钮时,我想要做的更多,例如在数据库中更改其购物车状态.所以,我希望能够在他们点击提交时执行一些代码,然后将数据发布到paypal.
我不想为此使用javascript.
我的方法目前是使用cURL,表单回发到当前页面,然后检查$ _POST数据,执行其他命令,如更新购物车的状态,然后创建curl命令,并发布表单数据贝宝.现在,它成功发布,但浏览器不会发送到paypal.
起初我只是在一个字符串中重新结果,然后回显它,我可以看到帖子成功了,然后我将CURLOPT_FOLLOWLOCATION设置为1,假设这会让浏览器关闭到paypal,但它没有,它似乎是什么从paypal获取一些东西并将其放在我的页面上.
使用cURL是正确的吗?如果是这样,我该如何解决这个问题呢?我想远离javascript,因为只有启用了javascript的用户才能更新购物车.
下面是用于curl的代码,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);
Run Code Online (Sandbox Code Playgroud)
也许尝试将 CURL 与标头语句结合起来
<?php
header ("Location: https://www.paypal.com/");
Run Code Online (Sandbox Code Playgroud)
这可能会起作用,具体取决于浏览器是否需要将任何状态(会话)信息传递给 paypal。此会话信息是在您的 CURL 调用中收集的,但遗憾的是无法将其传递到浏览器。所以如果你需要维护状态,那么这是行不通的。
Curl 在服务器端运行。它不会影响您的浏览器。CURLOPT_FOLLOWLOCATION 只是指示 CURL 服从,例如当 paypal 向其发送如上所述的标头时。指示浏览器执行某些操作的唯一方法是使用上面的 HTTP 标头进行响应,或者在 HTML 响应中使用某种元标记,例如
<META HTTP-EQUIV="refresh" CONTENT="10;URL=https://www.paypal.com/">
Run Code Online (Sandbox Code Playgroud)
作为替代方案,PayPal 不提供重定向功能,当交易完成时,该功能将重定向回您的服务器。如果是这样,那么只需在此回调期间更改卡状态并跳过整个卷曲过程?
归档时间: |
|
查看次数: |
3093 次 |
最近记录: |