我已经完成了(不那么有帮助的)PayPal文档,但找不到这个问题的简单答案。当用户从PayPal返回时,URL不包含查询字符串,因此我没有收到'tx'值(或任何其他值)。
这是我发送给PayPal的一个例子:
<form accept-charset="utf-8" action="https://www.sandbox.paypal.com/au/cgi-bin/webscr" id="paypal-form" method="post">
<input type="hidden" name="business" value="dallas_bus@dallasjclark.com">
<input type="hidden" name="cancel_return" value="http://localhost/checkout">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="charset" value="utf-8">
<input type="hidden" name="currency_code" value="AUD">
<input type="hidden" name="custom" value="155">
<input type="hidden" name="lc" value="AU">
<input type="hidden" name="notify_url" value="http://localhost/paypal-ipn">
<input type="hidden" name="return" value="http://localhost/checkout">
<input type="hidden" name="item_name" value="ABC Company - Order #155">
<input type="hidden" name="item_number" value="155">
<input type="hidden" name="amount" value="8.95">
<input type="hidden" name="discount_amount" value="0.00">
<input type="hidden" name="shipping" value="25.00">
<input type="image" src="https://www.paypal.com/en_AU/i/btn/btn_buynowCC_LG.gif" name="submit" alt="Buy Now">
</form>
提前致谢!
答案 0 :(得分:16)
您应该检查https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_profile-website-payments处的设置,并确保
我必须通过实验学习另一个不太明显的事情:您的表单不得包含“返回”值,否则将覆盖您设置中的返回URL并阻止自动返回工作,您将结束没有必要的 tx 参数。这是Paypal的一个相对较新的开发(bug?),因为它曾经工作过。
答案 1 :(得分:5)
我刚刚在这方面苦苦挣扎了一段时间,而另一件似乎导致没有tx
值返回的事情就是免费试用。
因此,如果您的服务费用在前20天免费,那么4.99此后您将无法获得第一笔免费付款的tx
值。如果您在初始“免费”期间收取一分钱(或任何相关货币),那么您将获得tx
值。
答案 2 :(得分:5)
我们实际上使用PayPal商户技术服务记录了一张票,以便深入了解此问题。 我们发现,随着时间的推移,一些paypal商家帐户似乎忘记了他们的AutoReturn / PDT设置。
即使您可以进入网站首选项,并且AutoReturn和PDT都已启用;该帐户的行为就像没有启用一样。
请按照以下步骤重置设置....
(*)直接链接到此部分,以防您无法找到它 - &gt; https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments
答案 3 :(得分:2)
我在测试过程中遇到了与沙箱相同的问题。要修复它,我必须在沙箱环境中验证测试帐户。要验证它们,请使用内置测试电子邮件服务。验证后,paypal沙箱开始发送TX参数。
答案 4 :(得分:1)
您可能无法获得 tx 参数的其他一些原因:
要使PDT正常工作,您必须在按钮代码中确认用作业务价值的电子邮件地址。如果未确认此电子邮件地址,则PDT将无法使用。如果您的电子邮件地址未得到确认,您将不会在返回网址中看到PDT查询字符串。
启用PDT时,您用作默认自动返回URL的URL必须是有效的主机名或IP地址,否则用户将不会自动返回到该URL。确保使用有效的URL作为您希望用户返回的位置的URL,否则您将看不到预期的结果。
答案 5 :(得分:1)
我找到了一个适合我的方法 - 尝试将此字段插入到生成的表单代码中:
<input type='hidden' name='rm' value='2'>
rm 表示 返回方法 ;
2 表示 发布变量
比用户购买并返回您的网站网址后,该网址也会获取POST参数
P.S。如果使用php,请尝试在您的返回网址(脚本)中插入var_dump($_POST);
,然后进行测试购买,当您返回到您的网站时,您会看到您的网址上有哪些变量。
答案 6 :(得分:0)
我遇到了类似的问题 - 在本地服务器上工作, 我过去常常而不是&#39; tx&#39;变量,我有一个&#39; auth&#39;变量。 在玩了一段时间之后,发现(由于某些有线的原因)如果我将我的vitrual主机和主机文件更改为真实域,我会得到&#39; tx&#39;变量,在我的本地环境域中,我获得了&#39; auth&#39;变量。 这为我解决了这个问题。 希望这有助于任何人。
答案 7 :(得分:0)
我还为此打开了PayPal商家技术服务票。
用于通过贝宝按钮发起的交易。 PayPal后端有时会丢失定价结构的货币值(即使它向您显示,并且您可以编辑定价,后端也会丢失该值并且不接受更新)。
症状:在沙盒中,PayPal流程将在登录后失败,但是在向您显示选择资金来源(即要使用哪个后备帐户或信用卡)的屏幕之前,该过程将失败。您收到“我们很抱歉;事情不正常”消息。
重新创建按钮,希望这次可以保存价格。