我正在尝试使用REST API和沙盒帐户退款。我执行以下操作:

$payment = \PayPal\Api\Payment::get("PAY-97Y13156VA872894FKO7Kxxx", $apiContext);
$resources = $payment->transactions[0]->getRelatedResources();
$saleId = $resources[0]->getSale()->getId();
$amt = new \PayPal\Api\Amount();
$amt->setCurrency('EUR')->setTotal('6.00');
$refund = new \PayPal\Api\Refund();
$refund->setAmount($amt);

$sale = new \PayPal\Api\Sale();
$sale->setId($saleId);
try {
    $sale->refund($refund, $apiContext);
} catch (\PayPal\Exception\PPConnectionException $ex) {
    var_dump($ex);
    exit;
}


这给出了以下错误:


  {“名称”:“ TRANSACTION_REFUSED”,“消息”:“该请求是
  {0}”,“,”信息链接“:” https://developer.paypal.com/webapps/developer/docs/api/#TRANSACTION_REFUSED“,” debug_id“:” 2334757d51bcd“}


该文档对于导致此错误的原因没有帮助。原始交易金额为16欧元。是否有任何方法可以进一步调试此问题,或者有关可能出问题的任何提示?

最佳答案

我现在正面临着同样的问题。试图退还全部16欧元吗?就我而言,这是我可以退还“ PayPal销售交易”的唯一方法。我真的想知道为什么在给定的情况下无法部分退还销售交易。文档在这里说了10个可能导致交易被拒绝的可能原因,但不完全是原因。

编辑:
因此,在进行一些挖掘之后,我认为问题(就我而言)在于“协助人”帐户的配置。

假设您正在使用沙箱,请转到:[仪表盘],然后单击[帐户](列在“沙箱”标题下)。单击(主持人)帐户左侧的箭头,然后单击配置文件以查看该帐户的设置。确保您具有与下图相同的设置



例如,我已将“付款审查”选项设置为“开”,因此我无法部分退款。

出于调试目的:

查找您的销售对象(PayPal Sale Object)以查看其为eligibility
在销售对象中查找属性protection_eligibilityprotection_eligibility_type

我希望这有帮助

G。

关于php - 尝试通过Paypal的REST API(php)退款时退款TRANSACTION_REFUSED,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24680056/

10-10 05:45