假设我们有 PayPal 沙箱帐户,并创建了用于调用 REST API 的应用程序。
在我们的应用程序中,我们使用 PayPal 支付按钮,将客户重定向到 PayPal 网站。客户付款并返回网站,我们在网站上检查状态并设置交易的外部引用。
对于此操作,我们使用的不是应用程序的凭据,而是帐户 - 电子邮件、密码和用户名。此后,我们将使用相同的凭据接受来自 PayPal 的 IPN 消息以跟踪状态。
然后我们有一个按钮Refund,按下这个按钮将使用应用程序的访问信息(clientId 和clientSecret).这部分建立在 PayPal PHP SDK 之上。
当我尝试执行调用时 - PayPal 返回 404 错误。我想付款对应用程序是不可见的。
更好地了解使用的凭据和位置:
Paypal 账户:
- 直播:
- 电子邮件
- 密码
- 用户名
- 测试:
- 电子邮件测试
- 密码测试
- 用户名测试
- 申请:
- 直播:
- 客户编号
- 客户端密码
- 测试:
- clientIdTest
- clientSecretTest
- 直播:
对于我使用的按钮:email-test, username-test, password-test
然后我得到 $transactionId
。并在代码中使用它:
$api = new ApiContext(new OAuthTokenCredential($clientIdTest, $clientSecretTest));
$ppAmount = new Amount();
$ppAmount->setCurrency('USD')
->setTotal(33.15);
$ppRefund = new Refund();
$ppRefund->setAmount($ppAmount);
$ppSale = new Sale();
$ppSale->setId($transactionId);
$ppSale->refund($ppRefund, $apiContenxt);
然后我收到 404。如您所见,我对按钮和 REST 调用使用测试凭据,但由于某种原因收到 404。
提前致谢。
最佳答案
据我所知,只有通过 REST API 进行的付款才能使用 REST API 进行退款,这意味着如果您通过按钮或其他 API 创建付款,则不能使用 REST 退款。
REST 退款需要 Sale 实体中的 sale_id(当您“执行”REST 付款时生成)。
关于php - 如何发送退款请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23063897/