假设我们有PayPal沙盒帐户,并创建了REST API调用的应用程序。
在我们的应用程序中,我们使用PayPal Pay Buttons将客户重定向到PayPal网站。客户支付并返回现场,我们检查状态并设置外部对交易的引用。
对于此操作,我们不使用应用程序的凭据,而是帐户 - 电子邮件,密码和用户名。在此之后,我们将使用相同的凭据接受来自PayPal的IPN消息以跟踪状态。
然后我们有一个按钮 Refund ,按下此按钮将向应用程序的访问信息( clientId 和)请求REST API到PayPal clientSecret )。这部分建立在PayPal PHP SDK之上。
当我尝试执行呼叫时 - PayPal返回404错误。我认为付款对应用程序不可见。
更好地了解凭据和使用位置:
PayPal帐户:
对于我使用的按钮:电子邮件测试,用户名测试,密码测试
然后我得到$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。
提前致谢。
答案 0 :(得分:1)
据我所知,只有通过REST API进行的付款才能使用REST API退款,这意味着如果您通过按钮或其他API创建付款,则无法使用REST退款。
REST退款需要在Sale实体中使用sale_id(当您“执行”REST付款时生成)。