以下是问题:
1. 用户进行付款 - 没问题 2. 用户成功返回我的网站 - 没问题 3. 几秒钟后,PayPal使用IPN调用我的网站 - 没问题 4. 我的类成功验证传入的IPN数据。 5. PayPal返回"payment_status: Pending"
我不知道为什么PayPal IPN回调的付款状态是"pending"?
有人知道我做错了什么吗?
当您登录到测试商业账户后,手动导航至:
https://www.sandbox.paypal.com/businessmanage/preferences/payments
通常情况下,您可以通过“我的业务设置”进入该页面,但目前它会重定向到PayPal实时网站(尽管处于沙箱模式)。
进入页面后,将“阻止向我发送不持有货币的付款”更改为“否,接受并转换成...”
同时,不要忘记使用PayPal沙箱前端和API的“测试电子邮件”部分确认您的商业账户。
账户设置>支付首选项>阻止付款
,点击“更新”,
然后选择“是,接受并将它们转换为<你的货币>。附加费用适用”。 - Arnis Juraga在处理了这个问题一段时间后,PayPal更改了用户界面。以下是来自PayPal商家技术支持 的确切指示:
感谢您联系Merchant技术支持。
请尝试按照以下说明关闭sandbox账户的Payment Review功能:
!!! 确保您在PayPal SandBox商家账户上执行此操作!
& 这就是它的样子:
登录到您的开发者中心。
点击左侧的测试账户选项卡。您应该已经创建了这些测试账户以在沙箱上进行测试。
找到“支付审核”列。
找到您正在使用的沙箱账户,并单击“支付审核”列中的“启用”。
这将变为“禁用”,现在从您的余额和信用卡资金支持的支付将立即完成。
可能存在两个原因:
1.卖家账户有接受或拒绝付款的选项
在这种情况下,您需要登录卖家账户并接受付款,然后您将收到另一个带有payment_status=Completed的IPN。
步骤:
2.启用了付款审核
解决方案:
这应该会更改为“已禁用”,现在从您的余额和信用卡资金支持的付款将立即完成。
我在沙盒环境中的所有用户账户中将 允许向我发送非本币种货币的付款
的状态改为 是
,但仍然无法正常工作。我尝试了 更改。
我还尝试在 PayPal 表单中创建相同的货币,并对沙盒用户账户进行 此处 操作:使新货币成为主货币、将钱转换为新货币。但仍然没有成功。
后来我注意到 Wes Hanney 的回答中的最后一句话:"使用 PayPal 沙盒前端确认您的商业账户"。尝试这样做 也没有成功。
M.G.Palmer 在他的回答中建议创建一个德国商家账户。但也没有成功。
真是太麻烦了!
一小时后,当我几乎要把电脑扔出窗外时,我才意识到我忘记了一件事。在PayPal表单中更改我的真实收件人电子邮件地址为沙盒商家电子邮件地址。这最终为我解决了问题。
PS:也许是一个愚蠢的初学者错误?但对于遇到相同情况的其他人可能会有所帮助。
我曾经遇到过同样的问题,但这里提供的建议都没有起作用。后来我发现问题在于我试图从沙盒账户向实际账户进行付款。例如,如果您注册的业务账户是:email@example.com
,那么所有沙盒支付都应该转至email-facilitator@example.com
,否则它们将处于待处理模式。
我这里也有类似的问题——我的(沙盒)商家账户是在美国创建的,但我想要进行欧元支付。
对我来说,无论我改变哪些设置都没有用,只有在德国创建一个基于该地的新商家账户后才能正常工作。