Paypal IPN在沙箱环境下总是返回“payment_status:Pending”?

64
我正在尝试在我的网站上实现PayPal支付。我使用这个类:http://www.micahcarrick.com/php-paypal-ipn-integration-class.html。目前我正在使用PayPal沙盒进行测试。
以下是问题:
1. 用户进行付款 - 没问题 2. 用户成功返回我的网站 - 没问题 3. 几秒钟后,PayPal使用IPN调用我的网站 - 没问题 4. 我的类成功验证传入的IPN数据。 5. PayPal返回"payment_status: Pending"
我不知道为什么PayPal IPN回调的付款状态是"pending"?
有人知道我做错了什么吗?

看起来应该是“待定”的状态。 - Rob Olmos
它应该是完整的,我是对的吗?Paypal IPN 应该给我打电话通知我操作是否成功。等待中...等待中,这意味着我不知道它是否成功,会在什么时候,现在,明天,还是永远。 - marc
5
嘿,马克,你解决了这个问题吗?我也遇到了同样的问题。 - amit patel
3
主要问题在于支付和您的账户使用不同的货币,正如Wes Hanney所说,您需要将“阻止以我不持有的货币发送的付款”更改为“不,接受并转换它们为...”。 - andys
前往:“我的销售工具” -> “阻止付款”(点击“更新”),选中第一个复选框“允许向我发送的货币不是我持有的货币:”,然后保存。 - Muhammad Shahzad
14个回答

0

解决方案如@Jadeye所述:

前往PayPal开发者网站

  1. 登录您的开发者账户(沙盒)
  2. 点击应用程序
  3. 点击沙盒账户
  4. 单击要关闭付款审核选项的电子邮件地址,然后在展开后单击配置文件
  5. 点击设置
  6. 选择关闭付款审核。
  7. 点击关闭

0

我通过删除所有沙盒账户并重新创建来解决了我的问题。

重要提示:

确保账户与您的代码使用相同的货币。


0

还有一件事情您可能需要检查:

确保您的PayPal账户语言编码设置为UTF-8。 在某些情况下,默认设置为类似于“windows-1256”的编码。 要将其更改为UTF-8,您需要执行以下操作:

  • 进入您的个人资料,然后选择“我的销售工具”
  • 在底部,单击“PayPal按钮语言编码”
  • 在下一页上,您需要单击“更多选项”,然后最终设置编码

我在德国设置的每个Paypal账户默认都设置为“windows…”的语言编码。然后IPN无法与UTF-8编码的网站配合使用,即使是在WooCommerce、EDD或Event Espresso中也是如此。


0
在我的情况下,问题是从 PayPal 的凭据选项卡中复制凭据时会出现 "xxxx_api1.example.com"。如果您在“用户名”、“帐户 ID”字段中输入此内容,则无法正常工作。您必须输入电子邮件地址。请仔细查看,电子邮件地址中包含“@”符号。因此,您必须在用户名和账户 ID 字段中都输入 "xxxx@.example.com"。我希望这对您有用,因为它对我有用。我还从设置中禁用了付款审核。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接