我已经设置了一个沙盒测试用例,我允许商家链接并向我的辅导员帐户授予快速结账权限,再加上第二页,最终用户可以从商家帐户购买商品。我遇到的问题是,在完成快速结账时,主持人正在接收所有的钱而不是商家。商家收到信用卡付款,但立即向协调人支付全额费用。
使用本指南:https://devtools-paypal.com/guide/expresscheckout/php?interactive=OFF&env=sandbox
然后我代表商家帐户创建了快速结帐。
Auth详细信息:
'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
我不确定在快速结账设置中我应该指定商家应该在快速结账时向协调人提交的发票类型。
如果需要,我可以提供更多代码段。
答案 0 :(得分:0)
我的问题的核心似乎是如果没有提供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
是我应该提供的。