【问题标题】:Paypal IPN always return "payment_status: Pending" on sandbox?Paypal IPN 总是在沙盒上返回“payment_status: Pending”?
【发布时间】:2012-04-26 23:30:29
【问题描述】:

我正在尝试在我的网站上实施 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”?

有谁知道我做错了什么?

【问题讨论】:

  • 看起来应该是“待定”
  • 应该是完整的吧?我是正确的 ? Paypal IPN 应该打电话通知我操作是否成功。待定...待定,那是我不知道它是否成功,将会,何时,现在,明天,永远
  • 嘿,马克你找到解决方案了吗,我也面临同样的问题
  • 主要是付款和您的帐户使用不同的货币,正如 Wes Hanney 所说,您需要在帐户中将“以我不持有的货币发送给我的块付款”更改为“否,接受它们并将它们转换为..."
  • 转到:我的销售工具->阻止付款(点击更新),选中第一个复选框“允许以我不持有的货币发送给我:”并保存

标签: php paypal-ipn paypal-sandbox


【解决方案1】:

登录测试业务帐户后,手动导航至:

https://www.sandbox.paypal.com/businessmanage/preferences/payments

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

进入该页面后,将“以我不持有的货币冻结发送给我的付款”更改为“不,接受它们并将它们转换为...”

另外,不要忘记使用 PayPal 沙盒前端和 API 的“测试电子邮件”部分确认您的企业帐户。

【讨论】:

  • ...和 ​​API 的“测试电子邮件”部分。这是什么?
【解决方案2】:

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

【讨论】:

  • 真实账户是否存在同样的问题?我有一个德国(真实)账户,想从国际客户那里获得美元付款。
  • @zoidbergi 我猜是这样,但据我所知,这个答案已经过时了。我已经很多年没有做过 PayPal 的事情了。 :)
【解决方案3】:

在稍微处理了这个问题 & PayPal 更改了 UI 之后,

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

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

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

  • 转到PayPal Developer Website
  • 登录您的开发者帐户
  • 点击应用程序
  • 点击沙盒帐户
  • 点击您要关闭“付款审核”选项的电子邮件地址,然后在展开后点击“个人资料”
  • 点击设置
  • 然后选择关闭进行付款审核。
  • 点击关闭

!!!确保您在您的PayPal SandBox 商家帐户上执行此操作!

&这就是它的样子:

【讨论】:

    【解决方案4】:

    您可以按照以下说明解决。

    1. 登录您的开发者中心。

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

    3. 找到“付款审核”列。

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

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

    【讨论】:

    • 我在使用 PayPal 沙盒时遇到了类似的问题。但即使这些选项已禁用,它也不起作用。
    • 我的问题来源在下面的答案中描述:当卖家和订单有不同的货币时它不起作用。一个愚蠢的 PayPal 错误
    • 即使在我按照您的指示启用帐户后,我的付款状态仍为待处理。
    • 嘿,伙计们,过去 2 天我都被困在这上面了。在这里尝试了所有建议以及我能找到的所有其他地方......我唯一尝试过的因为我似乎找不到的是“付款审查”......这就是我在 developer.paypal 沙箱页面上的内容:developer.paypal.sandbox-account
    • “付款审核”切换按钮最初已被禁用。但沙盒通知仍会发送 payment_status=pending
    【解决方案5】:

    两个可能的原因:

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

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

    步骤:

    1. 登录您的开发者中心
    2. 按左侧的“测试帐户”
    3. 选择卖家账号,点击底部“进入沙盒测试站点”
    4. 您应该会看到卖家控制面板,其中包含接受或拒绝任何付款的选项(您可能需要在此步骤使用卖家测试帐户凭据重新登录)

    2。付款审核已启用

    解决办法:

    1. 登录您的开发者中心。
    2. 单击左侧的测试帐户选项卡。您应该已经创建了这些测试帐户以在 Sandbox 上进行测试。
    3. 找到“付款审核”列。
    4. 找到您正在使用的沙盒帐户,然后点击“付款审核”列中的“启用”。

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

    【讨论】:

    • 我已将“以我不持有的货币发送给我的大宗付款”设置为“否,接受它们并将其转换为美元”。我的所有测试帐户都禁用了付款审查。然而,当测试用户使用 ILS(以色列)货币付款时,不会发生完整的通知。它适用于美元付款。现在的问题是什么?
    • 我已经检查了这两个,但它仍在等待中 - 还有其他原因吗? ://
    【解决方案6】:
    1. 我在沙盒中的所有用户帐户中对change Allow payments sent to me in a currency I do not hold 进行了Yes,但它仍然无法正常工作。

    2. 我还尝试在 paypal 表单中创建相同货币,并为沙盒用户帐户 here 将新货币设为主要。将货币转换为新货币。还是没有成功。

    3. 然后我注意到 Wes Hanney 回答的最后一句话:“使用 PayPal Sandbox 前端确认您的企业帐户”。 Trying this 也不起作用。

    4. M.G.Palmer 在他的回答中建议创建一个德国商家帐户。也没有用。


    真是麻烦!

    一小时后,我差点把电脑扔出窗外,我才意识到我忘了一件事。将我在 paypal 表单 中的真实收件人电子邮件地址更改为沙盒商家电子邮件地址。这终于为我解决了。


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

    【讨论】:

      【解决方案7】:

      我遇到了同样的问题,这里的建议都没有奏效。然后我意识到问题在于我试图从沙盒帐户向真实帐户付款。因此,例如,如果您注册的企业帐户是:email@example.com,那么所有沙盒付款都应支付给email-facilitator@example.com,否则它们将最终处于待处理模式。

      【讨论】:

        【解决方案8】:

        这里有类似的问题 - 我的(沙盒)商家帐户是在美国创建的,我试图进行欧元付款。

        对我来说,我更改了哪些设置并不重要,它只有在创建一个位于德国的新商家帐户后才有效。

        【讨论】:

          【解决方案9】:

          以上没有任何解决方案对我有用,但帮助我找到了解决方案。

          如果您使用的是默认的商家和买家帐户,也许此解决方案适合您。

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

          2. 登录并点击您的 sandobx 企业帐户和您的买家帐户中的克隆图标 /p>

          3. 设置新的姓名和电子邮件并点击创建新帐户

          4. 打开两个帐户的个人资料并确保 Payment Review 已关闭

          5. 编辑您的代码/应用中的目标帐户并放置新的企业帐户

          6. 使用新的买家帐户

          7. 重复交易

          这个解决方案不仅解决了我的问题。多亏了它,sandox.paypal 设计改为使用真实账户的新设计。

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

          【讨论】:

            【解决方案10】:

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

            1. 使用您的 Paypal 企业帐户登录 PayPal
            2. 转到“个人资料”>“个人资料和设置”>“我的钱”>“货币”
            3. 添加您想要支持的货币。

            备注:在测试时使用沙盒账户时,您需要在使用 URL:https://www.sandbox.paypal.com/ 登录该账户后,为您的服务商沙盒账户执行此操作

            【讨论】:

              【解决方案11】:

              @Jadeye 解释的解决方案是:

              转到 PayPal 开发者网站

              1. 登录您的开发者帐户(沙盒)
              2. 点击应用程序
              3. 点击沙盒帐户
              4. 点击您要关闭“付款审核”选项的电子邮件地址,然后在展开后点击“个人资料”
              5. 点击设置
              6. 然后选择关闭进行付款审核。
              7. 点击关闭

              【讨论】:

                【解决方案12】:

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

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

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

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

                【讨论】:

                  【解决方案13】:

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

                  重要说明:

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

                  【讨论】:

                    【解决方案14】:

                    在我的情况下,问题是从 paypal 中的凭据选项卡复制凭据给出“xxxx_api1.example.com”。如果您在“用户名”、“帐户 ID”字段中输入此内容,它将不起作用。您必须输入电子邮件。仔细看,电子邮件中有@。因此,您必须在用户名和帐户 ID 字段中都输入了“xxxx@.example.com”。我希望这对你有用,因为它对我有用。我还从设置中禁用了付款审核。

                    【讨论】:

                      猜你喜欢
                      • 2010-12-01
                      • 2015-08-14
                      • 2013-01-01
                      • 2017-02-05
                      • 2011-09-07
                      • 2015-11-25
                      • 2013-05-09
                      • 2011-08-07
                      相关资源
                      最近更新 更多