[我想想我只是在这里遗漏了一些明显的东西,但是我似乎无法完成连锁支付(使用沙箱中的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,无论如何,这都是我的理想选择。
UPDATE:鉴于我仍然没有收到我在PayPal上打开的机票的回复,并且没有人对此问题发表评论,因此我做了一些进一步的测试。如果我使用API资源管理器生成了相同的请求,则交易将正常完成。但是完全相同的请求通过API失败。我已经验证(通过复制并粘贴生成的标头和请求主体),API Explorer和SDK代码生成的请求之间的only差异如下:
如果删除应用程序ID引用,SDK API调用仍然无法使用,该ID是为了解决此问题而添加的。
我不明白为什么SDK(由PayPal提供)生成的付款无法完成,但是当资源管理器调用它时,确切的调用可以正常工作。任何帮助或建议,将不胜感激。
因此,在通过贝宝(PayPal)的商家技术支持解决了近一个月的问题(大多数时候根本没有得到任何答复)并等待近两周的升级请求后,事实证明,问题出在SDK配置。
尽管在整个API文档和SDK代码中,应用程序ID被引用为applicationId,但显然,SDK要求将其作为acct1.AppId输入到配置文件中。我是在遇到this wiki page on configuring the SDK之后才发现的,它甚至在24小时前都不存在。
更新配置后,我便可以无误地授权付款。
我遇到了另一个可能导致此连锁支付确切问题的原因。
这是设置我的链接式付款的方式。
[主帐户已收到100%。
这在沙盒中(正常价格)完美运行,绝对完美,但在Live中却出现此错误。
发生的是对Live的最终,预发布,测试,我们使用了一笔$ 1.00的交易金额,并发送了$.50
,$.10
,$.10
,$.10
,$.10
并留下了[C0 ]来支付$.10
费用。 (在撰写本文时,贝宝会收取$.33
)。在我们的案例中,互联网上的所有答案都不能解决问题,但是确实可以解决。将交易金额更改为$ 5(用于测试)效果很好,因为它留下了$ .50来支付$ .45的费用($ .45的费用为$ 5)。
我有这个问题,但以上建议对我没有用。我启用了该网站,价格为10美元。
[我还在屏蔽部分检查了PayPay设置,并且未选中“付款偏好”。尽管我有一个案件记录在案,但不知道这个模糊的问题是什么,PayPal已停止响应。到目前为止,他们只要求提供与订单相关的电子邮件地址。
我正在查看SDK分辨率,但之前从未更新过。推荐给我的网络专家。您的普通用户到底该怎么知道呢。