php - 如何发送退款请求?

标签 php rest paypal

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

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

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

然后我们有一个按钮Refund,按下这个按钮将使用应用程序的访问信息(clientIdclientSecret).这部分建立在 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/

相关文章:

PHP SQL 查询 - 无法添加 HTML 格式

rest - 具有自定义参数的 API 平台自定义操作

java - HttpResponseProxy HTTP/1.0 401 未经授权

c# - Paypal :Configuration.GetApiContext -> VS:无法解决问题

Paypal 订阅在首次付款后到期

javascript - 防止以下系统中的手动 POST 请求

php - 无法使用 Jquery 获取 JSON 值

php - 如何制作像gmail 和facebook 那样的交互式 uploader ?

ruby-on-rails - 您如何通过 ID 以外的方式获取 RESTful 资源?

php - Braintree 交易销售存储在金库中并正确使用随机数和 token