63

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

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

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

这是问题所在:

  1. 用户付款 - 好的
  2. 用户成功返回我的网站 - 好的
  3. 几秒钟后,PayPal 使用 IPN 呼叫我的网站 - 好的
  4. 我的班级成功验证了传入的 IPN 数据。
  5. 贝宝返回“payment_status:待处理”

不知道为什么 PayPal IPN 回拨付款状态为“pending”?

有谁知道我做错了什么?

4

14 回答 14

51

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

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

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

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

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

于 2012-04-02T20:47:24.657 回答
15

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

于 2011-09-02T10:39:58.150 回答
10

在稍微处理了这个问题& PayPal改变了用户界面之后,

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

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

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

  • 前往PayPal 开发者网站
  • 登录您的开发者帐户
  • 单击应用程序
  • 单击沙盒帐户
  • 单击您要关闭“付款审核”选项的电子邮件地址,然后在展开后单击“个人资料”
  • 单击设置
  • 并为付款审核选择关闭。
  • 点击关闭

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

& 这就是它的样子:

在此处输入图像描述

于 2013-11-21T11:27:09.183 回答
9

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

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

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

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

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

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

于 2010-12-14T15:02:26.497 回答
7

两个可能的原因:

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

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

脚步:

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

2. 启用付款审核

解决方案:

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

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

于 2012-10-02T19:29:30.043 回答
6
  1. 我确实更改 Allow payments sent to me in a currency I do not hold了沙盒Yes中的所有用户帐户,但它仍然无法正常工作。

  2. 我还尝试在 paypal 表单中创建相同的货币,并在此处为沙盒用户帐户制作新货币。将货币转换为新货币。仍然没有成功。

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

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


多么麻烦!

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


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

于 2014-02-16T10:27:18.220 回答
6

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

于 2016-04-14T20:30:54.070 回答
2

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

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

于 2013-08-29T11:56:01.557 回答
2

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

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

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

  2. 登录并单击您的 sandobx业务帐户买家帐户中的克隆图标

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

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

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

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


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

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

于 2017-01-10T14:20:04.007 回答
1

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

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

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

于 2018-04-06T11:35:21.980 回答
0

解决方案是@Jadeye 解释的:

前往 PayPal 开发者网站

  1. 登录您的开发者帐户(沙盒)
  2. 单击应用程序
  3. 单击沙盒帐户
  4. 单击您要关闭“付款审核”选项的电子邮件地址,然后在展开后单击“个人资料”
  5. 单击设置
  6. 并为付款审核选择关闭。
  7. 点击关闭
于 2014-10-10T15:02:12.177 回答
0

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

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

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

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

于 2015-05-12T05:30:24.540 回答
0

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

于 2021-03-01T11:05:29.047 回答
0

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

重要笔记:

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

于 2018-10-02T09:54:38.293 回答