在 paypal 平台上测试支付交易时,我在将数据发布到特定 URL 时遇到了一些问题。尽管在技术上理解得更多,但我选择不使用他们的 API 和 NVP 平台,因为需要首先创建一个事务,然后返回并必须创建一个重复的配置文件(而不是一次全部创建——在我看来是愚蠢的设计) .
最终,我尝试将已加密的数据放入特定变量并将该数据发布到选择的 URL,而不必将其视为用户点击提交的表单。
我的 HTML 表单有效 - 代码是:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_blank">';
<input type="hidden" name="cmd" value="_s-xclick"/>';
<input type="hidden" name="encrypted" value="'.$encrypted.'"/>';
<input type="submit" value="Go to checkout" name="submit" class="cartButton" />';
</form>
其中 $encrypted 是我的加密参数。虽然代码有效 - 我不想让用户单击要发送到表单的链接。相反,我希望用户单击一个按钮,该按钮首先运行 PHP 脚本以将数据存储在临时数据库中,然后将所需的元素(CMD 和加密)推送到发布 URL(https://www.sandbox.paypal.com/cgi-bin/webscr).
有什么想法可以实现吗?是否可以?我的网站使用 PHP 和 mySQL。 使用任何类型的 Javascript 都不是解决方案。
编辑 1
我已将其设置为使用 cURL 作为发布数据的可能方式,但发生了两件事:1) 我没有收到任何回复,2) 消费者实际上需要使用在数据库插入发生后发布数据。
最佳答案
这是不可能的,但还有另一种方法:您触发一个异步后台 javascript 事件,该事件将一个帖子发送到您自己的服务器以存储数据……以及另一个同步前台事件,该事件将表单发送到 PayPal 以进行安全处理。
关于php - POST 到不带 "form"的 PayPal 示例 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3806169/