我设置了一个沙盒测试用例,允许商家链接并授予我的服务商帐户的快速结账权限,以及最终用户可以从商家帐户购买商品的第二个页面。我遇到的问题是,在完成快速结帐后,服务商而不是商家收到所有款项。商家收到信用卡付款,但立即向服务商支付全额款项。
使用本指南:https://devtools-paypal.com/guide/expresscheckout/php?interactive=OFF&env=sandbox
然后我代表商家帐户创建了一个快速结帐。
授权详情:
'mode' => 'sandbox',
'acct1.UserName' => 'dev-facilitator...',
'acct1.Password' => 'dev-facilitator_pw...',
'acct1.Signature' => 'dev-facilitator...',
'acct1.AppId' => 'APP-80W284485P519543T',
'acct1.accessToken' => $merchant_token,
'acct1.tokenSecret' => $merchant_secret
我的代码看起来与示例非常相似,假设传递给 DoExpressCheckoutPayment 的 PaymentDetailsType 与从 GetExpressCheckoutDetails 收到的相同
一切似乎都正常工作,除了当用户完成付款时,商家的 paypal 最终看起来像这样:
Purchase From, dev-facilitator, Completed, Details, -$250 NZD
Transfer From, Credit Card , Completed, Details, $250 NZD
最终结果为:
Dev-facilitator balance: $250 NZD
Dev-merchant balance: $0 NZD
我不确定我应该在快速结账设置中的哪个位置指定商家应向服务商提交的与快速结账相关的发票类型。
如果需要,我可以提供更多代码片段。
最佳答案
我的问题的核心似乎是,如果没有提供 acct1.Subject(与 accessToken 关联的电子邮件),accessToken 和 tokenSecret 将被忽略。
造成混淆的第二件事是我没有注意我的买家操作针对的是哪个帐户...登录我的商家帐户更改了我在另一个选项卡中用于快速结账的 cookie .因此,商家帐户最终成为买家,而促进者成为商家......购买,转账,正是信用卡交易的显示方式:IE首先,信用卡被转换成 paypal 钱,然后用于 paypal 购买交易。
因此,
'mode' => 'sandbox',
'acct1.UserName' => 'dev-facilitator...',
'acct1.Password' => 'dev-facilitator_pw...',
'acct1.Signature' => 'dev-facilitator...',
'acct1.AppId' => 'APP-80W284485P519543T',
'acct1.Subject' => $merchant_email,
'acct1.accessToken' => $merchant_token,
'acct1.tokenSecret' => $merchant_secret
是我应该提供的。
关于php - Paypal商户支付服务商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239204/