2014-12-03 159 views
0

我正在开发一个Web应用程序,在该应用程序上允许用户购买活动的票证。我用Paypal Rest API寄钱和购买门票。一切都很顺利。现在,我尝试使用退款方式退款所有与活动相关的用户,此活动将被取消。查看REST API文档,我发现有一种方法可以退款,但是当我在REST API包中搜索laravel时,我还没有找到如何退款或使用退款方法。 rest-api-sdk-php不支持退款方式吗?如果是的话,如何在laravel项目中使用它? PS:付款是在没有信用卡的情况下完成的。我只使用沙箱的paypal帐户。 尝试REST API的退款代码时 - 编辑 - 我得到这样的结果:使用PayPal休息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

这里是一个文章通过php api退款。 http://www.kvcodes.com/2016/05/paypal-refund-transaction/ – Kvvaradha 2016-06-11 06:38:51

回答

2

您得到(请求被拒绝)

没有看到你的代码,错误下列任何可能的原因:

的部分退款金额必须小于或等于原始交易金额

部分退款金额必须小于或等于余额

的部分退款量无效

的部分退款必须是相同的货币作为原始交易

由于投诉情况下存在于这一交易,只有的全部或完整的剩余量的退款交易可以发出

您是在时间限制对本次交易进行退款

部分退款后不能做全额退款

这一交易已经完全退还

不能退还这种类型的交易

的你不能这样做部分退款这笔交易

商家帐户具有限制或约束

2

我不太肯定laravel项目,但PHP SDK确实有退还的能力。只需创建一个退款对象,并将其传递给销售对象中的退款方法。从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); 
} 
+0

我没有找到类'ResultPrinter'@vandershraaf – 2014-12-03 10:05:23

+0

删除该行。该行仅用于示例目的。你可以对它做一个正常的回声。 – 2014-12-03 19:03:29

+0

是的,我做了一个简单的回声,我用回声的结果编辑我的问题。 – 2014-12-04 21:20:16