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

时间:2010-11-28 17:51:23

标签: php paypal-ipn paypal-sandbox

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

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

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

问题在于:

  1. 用户付款 - 确定
  2. 用户成功返回我的网站 - 好的
  3. 几秒钟后,PayPal使用IPN呼叫我的网站 - 好的
  4. 我的班级成功验证了传入的IPN数据。
  5. PayPal返回“payment_status:待定”
  6. 我不知道为什么PayPal IPN回拨支付状态为“待定”?

    有谁知道我做错了什么?

14 个答案:

答案 0 :(得分:48)

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

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

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

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

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

答案 1 :(得分:16)

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

答案 2 :(得分:10)

稍微处理这个问题& PayPal更改用户界面,

以下是来自 PayPal商家技术支持的确切说明:

感谢您与Merchant技术支持部门联系。

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

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

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

&安培;这就是它的样子:

enter image description here

答案 3 :(得分:8)

您可以通过以下说明解决此问题。

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

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

  3. 找到“付款评论”列。

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

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

答案 4 :(得分:7)

两个可能的原因:

<强> 1。卖家帐户可以选择接受或拒绝付款

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

步骤:

  1. 登录您的开发者中心
  2. 按左侧的“测试帐户”
  3. 选择卖家帐户,然后按底部的“输入沙箱测试网站”
  4. 您应该会看到卖家信息中心,其中包含接受或拒绝任何付款的选项(您可能需要使用卖家测试帐户凭据重新登录此步骤)
  5. <强> 2。付款审核已启用

    解决方案:

    1. 登录您的开发者中心。
    2. 点击左侧的“测试帐户”标签。您应该已经创建了这些测试帐户以便在Sandbox上进行测试。
    3. 找到“付款评论”列。
    4. 找到您正在使用的沙盒帐户,然后点击“付款审核”列中的“已启用”。
    5. 这应该更改为“已停用”,现在您的余额和信用卡资金将立即完成。

答案 5 :(得分: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在他创建德国商人帐户的答案中建议。也没用。

  5. 你真麻烦!

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

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

答案 6 :(得分:5)

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

答案 7 :(得分:2)

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

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

答案 8 :(得分:2)

上面没有任何解决方案适合我,但帮助我找到解决方案。

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

  1. 转到 developer.paypal &gt;的 sandbox.accounts
    https://developer.paypal.com/developer/accounts/

  2. 登录,然后点击您的sandobx 商家帐户中的克隆图标买方帐户 < / p>

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

  4. 打开两个帐户的个人资料,确保付款审核 关闭

  5. 修改您的代码/应用中的目标帐户并放置新的商家帐户

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

  7. 此解决方案不仅解决了我的问题。由于它, sandox.paypal 设计更改为使用真实帐户新设计

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

答案 9 :(得分:1)

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

  1. 使用您的Paypal商家帐户登录PayPal
  2. 转到&#34;个人资料&#34; &GT; &#34;个人资料和设置&#34; &GT; “我的钱”&gt; “货币”
  3. 添加您要支持的货币。
  4. 备注:在测试时使用沙盒帐户时,您需要在使用以下网址登录此帐户后为辅助器沙盒帐户执行此操作:https://www.sandbox.paypal.com/

答案 10 :(得分:0)

解决方案是@Jadeye解释的:

转到PayPal开发者网站

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

答案 11 :(得分:0)

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

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

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

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

答案 12 :(得分:0)

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

重要说明:

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

答案 13 :(得分:0)

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