无法完成连锁支付

问题描述 投票:1回答:3

[我想想我只是在这里遗漏了一些明显的东西,但是我似乎无法完成连锁支付(使用沙箱中的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
&currencyCode=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差异如下:

  • 由资源管理器创建的标题在名称和值之间有一个空格
  • API资源管理器不包含应用程序ID
  • 我的API调用does在标头和请求正文中都包含应用程序ID

如果删除应用程序ID引用,SDK API调用仍然无法使用,该ID是为了解决此问题而添加的。

我不明白为什么SDK(由PayPal提供)生成的付款无法完成,但是当资源管理器调用它时,确切的调用可以正常工作。任何帮助或建议,将不胜感激。

paypal paypal-adaptive-payments
3个回答
1
投票

因此,在通过贝宝(PayPal)的商家技术支持解决了近一个月的问题(大多数时候根本没有得到任何答复)并等待近两周的升级请求后,事实证明,问题出在SDK配置。

尽管在整个API文档和SDK代码中,应用程序ID被引用为applicationId,但显然,SDK要求将其作为acct1.AppId输入到配置文件中。我是在遇到this wiki page on configuring the SDK之后才发现的,它甚至在24小时前都不存在。

更新配置后,我便可以无误地授权付款。


1
投票

我遇到了另一个可能导致此连锁支付确切问题的原因。

这是设置我的链接式付款的方式。

[主帐户已收到100%。

  • 推荐帐户从中获得了50%。
  • 合作伙伴1帐户获得10%。
  • 合作伙伴2帐户获得10%。
  • 合作伙伴3帐户获得10%。
  • 合作伙伴4帐户获得10%。
  • [10%保留在主帐户中并支付交易费用。

这在沙盒中(正常价格)完美运行,绝对完美,但在Live中却出现此错误。

发生的是对Live的最终,预发布,测试,我们使用了一笔$ 1.00的交易金额,并发送了$.50$.10$.10$.10$.10并留下了[C0 ]来支付$.10费用。 (在撰写本文时,贝宝会收取$.33)。在我们的案例中,互联网上的所有答案都不能解决问题,但是确实可以解决。将交易金额更改为$ 5(用于测试)效果很好,因为它留下了$ .50来支付$ .45的费用($ .45的费用为$ 5)。


0
投票

我有这个问题,但以上建议对我没有用。我启用了该网站,价格为10美元。

[我还在屏蔽部分检查了PayPay设置,并且未选中“付款偏好”。尽管我有一个案件记录在案,但不知道这个模糊的问题是什么,PayPal已停止响应。到目前为止,他们只要求提供与订单相关的电子邮件地址。

我正在查看SDK分辨率,但之前从未更新过。推荐给我的网络专家。您的普通用户到底该怎么知道呢。

© www.soinside.com 2019 - 2024. All rights reserved.