【发布时间】:2015-08-25 21:08:28
【问题描述】:
此代码不起作用:
$sale = $this->get_sale($saleId);
$amt = $sale->getAmount();
$refund = new Refund();
$refund->setAmount($amt);
$refundSale = new Sale();
$refundSale->setId($saleId);
$refundedSale = $refundSale->refund($refund, $this->apiContext);
根据https://developer.paypal.com/docs/integration/direct/refund-payment/,我尝试不提供金额对象来发起全额退款。
但这也不起作用:
$sale = $this->get_sale($saleId);
$refund = new Refund();
$refundSale = new Sale();
$refundSale->setId($saleId);
$refundedSale = $refundSale->refund($refund, $this->apiContext);
谁能确定我做错了什么? API 响应没有详细说明发生了什么,只是错误代码 400 和“请求被拒绝。{0}”。
【问题讨论】:
-
您能否发布来自 PayPal 的包含调试 ID 的完整回复?
-
响应产生的 var_dump:
stdClass::__set_state(array( 'name' => 'TRANSACTION_REFUSED', 'message' => 'The request was refused.{0}', 'information_link' => 'https://developer.paypal.com/webapps/developer/docs/api/#TRANSACTION_REFUSED', 'debug_id' => 'e5c656a198a83', )) -
您确定该交易尚未退款吗?
-
是的,还没有退款。如果手动设置
$amt,它就可以工作。但是将其设置为 $sale 中的金额不起作用?这没有任何意义。 -
这里有一篇关于通过php api退款的文章。 kvcodes.com/2016/05/paypal-refund-transaction