2014-12-03 123 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