贝宝IPN总是返回沙箱上的“payment_status:待定”?

我正在尝试在我的网站上实施PayPal。

我使用这个类: http : //www.micahcarrick.com/php-paypal-ipn-integration-class.html

现在我正在使用PayPal沙盒进行testing。

这是问题:

  1. 用户付款 – 好的
  2. 用户成功返回到我的网站 – 好的
  3. 几秒钟后,PayPal使用IPN拨打我的网站 – 确定
  4. 我的class级成功validation传入的IPN数据。
  5. PayPal返回“payment_status:待定”

我不知道为什么PayPal IPN回拨“等待”的付款状态?

有谁知道我在做什么错?

当您login到您的testing业务帐户时,请手动导航至:

https://www.sandbox.paypal.com/ca/cgi-bin/?cmd=_profile-pref&source=acct_setup&fli=true

通常情况下,您可以通过“我的业务设置”进入该页面,但是现在它会redirect到PayPal直播(尽pipe位于沙盒中)。

进入该页面后,将“阻止以我不持有的货币发送给我的付款”更改为“不,接受并将其转换为…”

此外,请不要忘记使用PayPal Sandbox前端和API的“testing电子邮件”部分确认您的商家帐户。

我的问题是,我的沙盒商人帐户是作为英国用户(和英镑作为货币)。 当我试图通过丹麦克郎(DKK)的订单时,它会告诉我,在商家的观点中,这笔购买是“无人认领”的。 一旦DKK中的一个订单被接受,我select以DKK创build一个新货币,IPN给我发送了所有“payment_status = completed”消息。

处理这个问题一点&PayPal改变用户界面,

以下是PayPal商户技术支持的具体说明:

感谢您联系商家技术支持。

请尝试按照以下说明closures您的沙箱帐户的付款审核function:

  • 去PayPal开发者网站
  • login到您的开发者帐户
  • 点击应用程序
  • 点击沙盒帐户
  • 点击您要closures“付款查看”选项的电子邮件地址,然后在展开后单击“个人资料”
  • 点击设置
  • 并selectclosures付款审查。
  • 点击closures

确保您在PayPal Sandbox商家帐户中执行此操作!

这就是它的样子:

在这里输入图像说明

您可以通过以下说明来解决它。

  1. login到您的开发人员中心。

  2. 点击左边的Test Accounts标签。 您应该已经创build了这些testing帐户以在沙盒上进行testing。

  3. find“付款审查”一栏。

  4. find您正在使用的沙箱帐户,然后点击“付款审核”列中的“已启用”。

  5. 这应该更改为“禁用”,现在从您的余额和信用卡资助的付款将立即完成。

两个可能的原因:

1.卖家账户可以select接受或拒绝付款

在这种情况下,您需要以卖家身份login并接受付款,并且您将获得另一个IPN,其中payment_status =已完成

脚步:

  1. login到您的开发者中心
  2. 按左边的“testing帐户”
  3. select卖家帐户,然后按下底部的“进入沙箱testing网站”
  4. 您应该看到卖家仪表板可以select接受或拒绝任何付款(您可能需要使用卖家testing帐户凭证在此步骤重新login)

2.支付审查启用

解:

  1. login到您的开发人员中心。
  2. 点击左边的Test Accounts标签。 您应该已经创build了这些testing帐户以在沙盒上进行testing。
  3. find“付款审查”一栏。
  4. find您正在使用的沙箱帐户,然后点击“付款审核”列中的“已启用”。

这应该更改为“禁用”,现在从您的余额和信用卡资助的付款将立即完成。

  1. 我确实更改了 Allow payments sent to me in a currency I do not hold Yes在沙箱中的所有用户帐户 ,但它仍然无法正常工作。

  2. 我也尝试在PayPal表单中创build相同的货币 ,在这里为沙箱用户帐户创build新货币。 将货币转换为新货币。 仍然没有成功。

  3. 然后我注意到Wes Hanney的回答最后一句话:“使用PayPal Sandbox前端确认您的商业账户”。 尝试这个也没用。

  4. MGPalmer在他的回答中build议创build一个德国商人帐户。 也没有工作。

多麻烦!

过了一个小时,我刚刚把电脑扔出窗外,我意识到我忘了一件事。 将我的真实收件人电子邮件地址更改为沙盒商户电子邮件地址。 那终于为我解决了。

PS:也许是一个愚蠢的初学者的错误? 但对于遇到相同情况的其他人可能会有所帮助。

我也有同样的问题,这里没有任何build议。 然后我意识到问题是我试图从沙箱帐户付款到真实帐户。 例如,如果您的注册商业账户是: email@example.com那么所有的沙箱支付应该发送到email-facilitator@example.com否则它们将以PENDING模式结束。

类似的问题在这里 – 我的(沙箱)商家帐户是在美国创build,我试图做欧元支付。

对我而言,我更改了哪些设置并不重要,只有在德国创build新的商家帐户后才能使用。

上面没有解决scheme为我工作,但帮助我find解决scheme。

如果您使用de默认业务和买家帐户,也许这种解决scheme将为您工作。

  1. 转到developer.paypal > sandbox.accounts
    https://developer.paypal.com/developer/accounts/

  2. login并点击您的sandobx 企业账户中的 克隆图标和您的买家账户

  3. 设置新名称电子邮件 ,然后点击创build新帐户

  4. 打开这两个帐户的configuration文件,并确保付款审查 closures

  5. 在您的代码/应用程序中编辑您的目标帐户,并放置新的业务帐户

  6. 使用新买家帐户 重复交易


这个解决scheme不仅解决了我的问题。 由于它sandox.paypaldevise更改为使用真实账户新devise

这一点很重要,因为IPN在这种情况下收到的一些数据可能会以不同的名字作出回应。

解决scheme是@Jadeye解释:

去PayPal开发者网站

  1. login到您的开发者帐户(沙箱)
  2. 点击应用程序
  3. 点击沙盒帐户
  4. 点击您要closures“付款查看”选项的电子邮件地址,然后在展开后单击“个人资料”
  5. 点击设置
  6. 并selectclosures付款审查。
  7. 点击closures

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

确保PayPal账户的语言编码设置为UTF-8。 在某些情况下,默认情况下,它被设置为“windows-1256”。 要将其更改为UTF-8,您需要:

  • 进入你的个人资料然后“我的销售工具”
  • 那里,在底部点击“PayPalbutton语言编码”
  • 在下一页,你需要点击“更多选项”,你可以最终设置编码

我在德国设置的每一个PayPal帐户默认都设置为“windows …”语言编码。 然后,IPN将不能使用UTF-8编码的网站,即使在Woocommerce或EDD或事件浓缩咖啡。

问题是,如果货币不在您的商家PayPal帐户将被标记为“无人认领”,因此它返回状态“挂起”

您需要做的是点击“无人认领”的状态,索取金额,并select以您要求的货币开设新基金的选项,例如欧元。 这将打开您的PayPal账户上的欧元存款行,然后validation声明的交易加上未来的交易。