可以't覆盖Paypal“立即购买”按钮返回url

Can't override Paypal Buy Now button return url

本文关键字:立即购买 按钮 url 返回 覆盖 Paypal 可以      更新时间:2023-09-26

我正在尝试做一些非常简单的事情,但无论我做什么,它似乎都不起作用。我在贝宝的后端创建了一个立即购买按钮,并将代码放在我的网站中。然后我在表单html中添加一个返回url,这样我就可以做一些交易后的事情。。。我用这个标签

'<input type="hidden" name="return" value="http://localhost:8080?trans=1234567890">'

不管它是不是localhost,它仍然返回到我在paypals后端的自动返回设置中指定的url。这是我的全部按钮代码。。。它少了什么吗?

var html = '<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top"> ' +
                    '<input type="hidden" name="cmd" value="_s-xclick"> ' +
                    '<input type="hidden" name="return" value="http://localhost:8080?trans=1234567890">' +
                    '<input type="hidden" name="hosted_button_id" value="'+ attr.id +'"> ' +
                    '<input type="image" src="http://invisibled.com/myimg.jpg" border="0" name="submit" alt=""> ' +
                    '<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> ' +
                '</form>';

我只需要在返回url的末尾指定一个变量。。。这将是用户购买的物品的id,这样我就可以给他们一个下载链接。我真的不想设置任何与贝宝API相关的东西,我觉得必须有一种方法来实现这一点。

有人有什么建议吗?为什么它忽略了我表单的返回url,只使用你必须在后台指定的返回url?

谢谢!

====================编辑================

我已经按照下面用户的建议更新了我的代码。。。但仍然在我的贝宝设置中获得相同的url返回

var html = '<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> ' +
                    '<input type="hidden" name="cmd" value="_xclick">' +
                    '<input type="hidden" name="business" value="test@email.com">' +
                    '<input type="hidden" name="return" value="http://invisiblesound.net?t=1234567890" />' +
                    '<input type="hidden" name="lc" value="CA">' +
                    '<input type="hidden" name="item_name" value="Beat 0001">' +
                    '<input type="hidden" name="amount" value="40">' +
                    '<input type="hidden" name="currency_code" value="USD">' +
                    '<input type="hidden" name="button_subtype" value="products">' +
                    '<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted">' +
                    '<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">' +
                    '<img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">' +
                '</form>';

您使用的是托管按钮。因此,签出将使用创建按钮时包含的设置,而不是查看添加到表单中的变量(除了一些接受项)。

如果你想直接在表单中设置动态变量,你需要使用一个非托管按钮,这当然会使按钮不那么安全。如果这对你来说是一个大问题,那么你可以改用API,而不是使用支付标准,这将给你更多的自由和良好的保护。

此外,请记住,当您真正上线时,localhost将不起作用。你需要确保你在那里设置了一个实际的域/IP。它可能在测试期间对您有用,因为您确实配置了localhost,但您的用户不会。