我正在开发一个Web应用程序,我允许用户为活动购买门票。我使用Paypal Rest API
来汇款和购买门票。一切正常。现在,我正在尝试使用退款方式退还与此活动相关的所有用户。查看REST API文档,我发现有一种方法可以退款,但是当我在REST API包中搜索laravel
时,我还没有找到如何退款或使用退款方法。 rest-api-sdk-php
不支持退款方式吗?如果是,如何在laravel项目中使用它?
PS:付款是在没有信用卡的情况下完成的。我只使用带有沙箱的paypal账户。
--edit--我在尝试其余api的退款代码时得到了这个结果:
{"name":"TRANSACTION_REFUSED","message":"The request was refused.{0}","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#TRANSACTION_REFUSED","debug_id":"97f33dd89f4c8"}
答案 0 :(得分:3)
我对laravel项目不太确定,但PHP SDK确实有退款的能力。只需创建一个Refund对象并将其传递给Sale对象中的退款方法。来自https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/sale/RefundSale.php的示例代码:
// ### Refund object
$refund = new Refund();
$refund->setAmount($amt);
// ###Sale
// A sale transaction.
// Create a Sale object with the
// given sale transaction id.
$sale = new Sale();
$sale->setId($saleId);
try {
// Create a new apiContext object so we send a new
// PayPal-Request-Id (idempotency) header for this resource
$apiContext = getApiContext($clientId, $clientSecret);
// Refund the sale
// (See bootstrap.php for more on `ApiContext`)
$refundedSale = $sale->refund($refund, $apiContext);
} catch (Exception $ex) {
ResultPrinter::printError("Refund Sale", "Sale", $refundedSale->getId(), $refund, $ex);
exit(1);
}
答案 1 :(得分:2)
您收到的错误(请求被拒绝。)
如果没有看到您的代码,可能是以下任何原因:
部分退款金额必须小于或等于原始交易金额
部分退款金额必须小于或等于剩余金额
部分退款金额无效
部分退款必须与原始交易货币相同
由于此次交易存在投诉案例,因此只能退还全部或全部剩余交易金额
您超过了此次交易退款的时间限制
部分退款后无法全额退款
此交易已全额退款
您无法退还此类交易
您无法对此次交易进行部分退款
商家帐户有限制或限制