首页 文章

Paypal IPN总是在沙箱上返回“payment_status:Pending”?

提问于
浏览
55

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

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

现在我正在使用PayPal沙箱进行测试 .

这是问题所在:

  • 用户付款 - 好的

  • 用户成功返回我的网站 - 好的

  • 几秒钟后,PayPal使用IPN呼叫我的网站 - 好的

  • 我的 class 成功验证了传入的IPN数据 .

  • PayPal返回"payment_status: Pending"

我不知道为什么PayPal IPN回拨支付状态为“待定”?

有谁知道我做错了什么?

13 回答

  • 0

    我的问题是我的沙盒商家帐户是作为英国用户(和英镑作为货币) . 当我试图通过丹麦克朗(DKK)的订单时,它会告诉我在商家视图中购买的是“无人认领” . 一旦DKK中的一个订单被接受,并且我选择以DKK创建新货币,IPN就会向我发送所有“payment_status = completed”消息 .

  • 7

    解决方案是@Jadeye解释的:

    转到PayPal开发者网站

    • 登录您的开发者帐户(沙箱)

    • 单击“应用程序”

    • 单击沙盒帐户

    • 单击要关闭“付款审核”选项的电子邮件地址,然后在展开后单击“配置文件”

    • 单击“设置”

    • 并选择关闭以进行付款审核 .

    • 单击“关闭”

  • 6

    当您登录测试业务帐户时,请手动导航至:

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

    您通常可以通过“我的业务设置”到达那里,但目前它会重定向到PayPal直播(尽管在沙箱中) .

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

    此外,请不要忘记使用PayPal Sandbox前端和API的“测试电子邮件”部分确认您的企业帐户 .

  • 49

    处理完这个问题后,PayPal会改变UI,

    以下是 PayPal Merchant Technical Support 的确切说明:

    感谢您与Merchant技术支持联系 .

    请尝试按照以下说明关闭沙盒帐户的付款审核功能:

    • 转到PayPal Developer Website

    • 登录您的开发者帐户

    • 单击“应用程序”

    • 单击沙盒帐户

    • 单击要关闭“付款审核”选项的电子邮件地址,然后在展开后单击“配置文件”

    • 单击“设置”

    • 并选择关闭以进行付款审核 .

    • 单击“关闭”

    !!! 确保你在 PayPal SandBox Merchant Account 上这样做!

    这就是它的样子:

    enter image description here

  • 16

    您可以通过以下说明解决它 .

    • 登录开发人员中心 .

    • 单击左侧的“测试帐户”选项卡 . 您应该已经创建了这些测试帐户以便在Sandbox上进行测试 .

    • 查找“付款审核”列 .

    • 找到您正在使用的沙盒帐户,然后单击“付款审核”列中的“已启用” .

    • 这应该更改为“已禁用”,现在您的余额和信用卡支付的款项将立即完成 .

  • 2

    两个可能的原因:

    1. seller account has option to accept or decline payment

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

    脚步:

    • 登录您的开发人员中心

    • 按左侧的"test accounts"

    • 选择卖家帐户,然后按底部的"Enter sandbox test site"

    • 您应该看到卖家信息中心有选项接受或拒绝任何付款(您可能需要使用卖家测试帐户凭据重新登录此步骤)

    2. Payment review is enabled

    解:

    • 登录开发人员中心 .

    • 单击左侧的“测试帐户”选项卡 . 您应该已经创建了这些测试帐户以便在Sandbox上进行测试 .

    • 查找“付款审核”列 .

    • 找到您正在使用的沙盒帐户,然后单击“付款审核”列中的“已启用” .

    这应该更改为“已禁用”,现在您的余额和信用卡资金将立即完成 .

  • 4
    • 我在沙箱中的 all user accounts 中做了change Allow payments sent to me in a currency I do not holdYes ,但它仍然无法正常工作 .

    • 我还尝试以paypal形式创建 same currencies ,并为沙箱用户帐户创建here使新货币成为主要货币 . 将货币转换为新货币 . 仍然没有成功 .

    • 然后我注意到Wes Hanney答案的最后一句:"confirm your business account using the PayPal Sandbox front-end" . Trying this也没有用 .

    • M.G.Palmer建议他创建一个德国商人账户 . 也没用 .

    太麻烦了!

    一个小时后,我接近将PC扔出窗外,我才意识到我忘记了一件事 . 将 paypal form 中的真实收件人电子邮件地址更改为沙箱商家电子邮件地址 . 这终于为我解决了 .

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

  • 0

    我有同样的问题,这里没有任何建议有效 . 然后我意识到问题是我试图从沙箱帐户到真实帐户进行付款 . 因此,例如,如果您的注册企业帐户是: email@example.com ,那么所有沙箱付款都应该是 email-facilitator@example.com ,否则它们将以PENDING模式结束 .

  • 0

    类似的问题在这里 - 我的(沙盒)商家帐户是在美国创建的,我正在尝试支付欧元 .

    对我来说,改变哪些设置并不重要,只有在德国创建新的商家帐户后才有效 .

  • 2

    上述解决方案没有对我有用,但帮助我找到了解决方案 .

    If you are using de default business and buyer account, maybe this solution will work for you.

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

    • Login 并点击你的sandobx business account 中的 clone icon 和你的 buyer account

    • 设置新 namesemails 并单击 create new account

    • 打开两个帐户的 Profiles ,确保 Payment ReviewOFF

    • Edit 您的代码/应用中的目标帐户并放置新的 business account

    使用新 buyer account

    • Repeat 交易

    这个解决方案不仅解决了我的问题 . 由于它, sandox.paypal 设计更改为使用 real accountsnew design .

    This is important because some of data received by IPN in this case, may respond at different name.

  • 8

    默认情况下,您的PayPal商家帐户仅限于根据您的区域设置选择的几种可接受货币 . 使用不接受的货币进行的付款将保持待定/未结状态 . 要支持/接受这些货币,您需要将它们添加到PayPal上的“已接受货币”列表中 . 为此,请按照下列步骤操作:

    • 使用您的Paypal企业帐户登录PayPal

    • 转到"Profile"> "Profile and Settings">“我的钱”>“货币”

    • 添加您要支持的货币 .

    备注:在测试时使用沙盒帐户时,您需要在使用URL登录此帐户后为您的辅助沙箱帐户执行此操作:https://www.sandbox.paypal.com/

  • 10

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

    Make shore that the language encoding of your PayPal account is set to UTF-8. 在某些情况下,默认设置为'windows-1256' . 要将其更改为UTF-8,您需要:

    • 进入你的 Profiles 然后“我的销售工具”

    • ,在底部点击“PayPal按钮语言编码”

    • 在下一页上,您需要单击“更多选项”,您可以在其中最终设置编码

    我在德国设置的每个Paypal帐户默认设置为语言编码“windows ...” . 然后IPN将无法使用UTF-8编码的网站,即使在Woocommerce或EDD或event espresso中也是如此 .

  • 1

    我通过删除所有沙箱帐户并重新创建它来解决我的问题 .

    重要笔记:

    确保帐户使用与您的代码相同的货币 .

相关问题