【问题标题】:How do I send a refund request?如何发送退款请求?
【发布时间】:2014-05-28 15:18:03
【问题描述】:

假设我们有 PayPal 沙盒帐户,并创建了用于 REST API 调用的应用程序。

在我们的应用程序中,我们使用 PayPal 支付按钮将客户重定向到 PayPal 网站。客户付款并返回网站,我们在此检查状态并设置交易的外部参考。

对于此操作,我们使用的不是应用程序的凭据,而是帐户 - 电子邮件、密码和用户名。在此之后,我们将接受来自 PayPal 的 IPN 消息以使用相同的凭据跟踪状态。

然后我们有一个按钮Refund,按下这个按钮将向PayPal发送一个REST API请求,其中包含应用程序的访问信息(clientIdclientSecret >)。这部分构建在 PayPal PHP SDK 之上。

当我尝试执行呼叫时 - PayPal 返回 404 错误。我想应用程序看不到付款。

更好地了解使用的凭据和位置:

贝宝账户:

  • 直播:
    • 电子邮件
    • 密码
    • 用户名
  • 测试:
    • 电子邮件测试
    • 密码测试
    • 用户名测试
  • 应用:
    • 直播:
      • clientId
      • clientSecret
    • 测试:
      • 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。

提前致谢。

【问题讨论】:

  • 当您收到此错误时,您能否发布错误日志的输出?根据我的测试,只要您拥有有效的 transactionid,这应该可以正常工作。

标签: php rest paypal


【解决方案1】:

据我所知,只有通过 REST API 进行的付款才能使用 REST API 退款,这意味着如果您通过按钮或其他 API 创建付款,则无法使用 REST 退款。

REST 退款需要 Sale 实体中的 sale_id(当您“执行”REST 付款时生成)。

【讨论】:

  • 是的,在文档中找到了。谢谢!
猜你喜欢
  • 2013-05-31
  • 2012-04-22
  • 2012-09-25
  • 1970-01-01
  • 2013-05-21
  • 2019-10-28
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
相关资源
最近更新 更多