无法完成连锁支付
Posted
技术标签:
【中文标题】无法完成连锁支付【英文标题】:Chained payment cannot be completed 【发布时间】:2013-07-28 20:36:25 【问题描述】:我想我只是在这里遗漏了一些明显的东西,但我似乎(在沙箱中使用 php SDK)。我能够获得成功的响应,当我将用户重定向到 PayPal 时,交易详细信息显示正常,但是当用户尝试完成付款时,他们得到了可怕的错误:
您的付款无法完成。请返回参与网站并重试。
令人沮丧的是,我已经转储了正在发送的请求数据,并将其与 the example given in the documentation 中的数据进行了比较,并调整了我的请求,直到它们实际上相同,但仍然没有骰子。我也没有在任何帐户上看到任何表明付款已尝试、待处理或失败的信息。
这是正在发送的内容:
requestEnvelope.errorLanguage=en_US
&clientDetails.ipAddress=127.0.0.1
&clientDetails.applicationId=APP-80W284485P519543T
&actionType=PAY
&cancelUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Fcancel
¤cyCode=USD
&feesPayer=EACHRECEIVER
&memo=Test+Payment
&receiverList.receiver(0).amount=3.25
&receiverList.receiver(0).email=merchant%40domain.com
&receiverList.receiver(0).primary=1
&receiverList.receiver(1).amount=1.5
&receiverList.receiver(1).email=seller%40domain.com
&senderEmail=buyer%40domain.com
&returnUrl=http%3A%2F%2Fdomain.com%2Fpaypal%2Freturn
我觉得响应很好:
PayPal\Types\AP\PayResponse Object
(
[responseEnvelope] => PayPal\Types\Common\ResponseEnvelope Object
(
[timestamp] => 2013-07-28T23:25:52.676-07:00
[ack] => Success
[correlationId] => bf1ba2c8a50d4
[build] => 6941298
)
[payKey] => AP-XXXXXXXXXXXXXXXXC
[paymentExecStatus] => CREATED
[payErrorList] =>
[paymentInfoList] =>
[sender] =>
[defaultFundingPlan] =>
[warningDataList] =>
[error] =>
)
我还尝试将操作类型设置为 PAY_PRIMARY,因为我指定了主要收件人,无论如何这都是我所追求的理想状态。
更新:看到我仍然没有收到关于我用 PayPal 开出的票的回复,而且没有人对这个问题发表评论,我做了一些进一步的测试。如果我使用 API 资源管理器生成相同的请求,则事务正常完成。但是完全相同的请求通过 API 失败了。我已经验证(通过复制和粘贴生成的标头和请求正文)API Explorer 生成的请求和 SDK 代码之间的唯一差异如下:
资源管理器创建的标头在名称和值之间有一个空格 API Explorer 不包含应用程序 ID 我的 API 调用是否在标头和请求正文中都包含应用程序 ID如果我删除应用程序 ID 引用,SDK API 调用仍然不起作用,该引用是为了解决这个问题而添加的。
我不明白为什么 SDK 生成的付款(由 PayPal 提供)无法完成,但是当资源管理器调用它时,确切的调用工作正常。任何帮助或建议将不胜感激。
【问题讨论】:
【参考方案1】:因此,在与 PayPal 的商家技术支持人员解决了近一个月的问题(大部分时间根本没有收到任何回复)并等待了近两周的升级响应后,事实证明问题源于 SDK配置。
虽然在整个 API 文档和 SDK 代码中,应用程序 ID 被引用为 applicationId,但显然 SDK 要求将其作为 acct1.AppId 输入到配置文件中.我是在遇到 this wiki page on configuring the SDK 后才发现的,它甚至在 24 小时前都不存在。
一旦我更新了我的配置,我就可以毫无错误地授权付款。
【讨论】:
【参考方案2】:我遇到了另一个可能导致链式支付出现这个确切问题的原因。
这是我的链式付款的设置方式。
主账户收到 100%。
推荐帐户从中获得 50%。 合作伙伴 1 帐户获得 10%。 合作伙伴 2 帐户获得 10%。 合作伙伴 3 帐户获得 10%。 合作伙伴 4 帐户获得 10%。 10% 留在主账户并支付交易费用。这在沙盒中完美运行(价格正常),绝对完美,但我在 Live 中遇到了这个错误。
正在发生的事情是 Live 的最终、预先公告、测试,我们使用 1.00 美元的交易金额并发送 $.50
、$.10
、$.10
、$.10
、$.10
并离开 @ 987654326@ 支付$.33
费用。 (在撰写本文时,贝宝收费2.9% + $.30
)。互联网上的所有答案都没有解决我们案例中的问题,但确实如此。将交易金额更改为 5 美元(用于测试)效果很好,因为它留下了 0.50 美元来支付 0.45 美元的费用(5 美元的 0.45 美元费用)。
【讨论】:
以上是关于无法完成连锁支付的主要内容,如果未能解决你的问题,请参考以下文章