【问题标题】:How can I confirm a PayPal payment was executed successfully?如何确认 PayPal 付款已成功执行?
【发布时间】:2017-06-21 23:29:07
【问题描述】:

我正在开发一个使用 PayPal 处理付款的自动化商品商城。

我目前执行这样的付款...

$execution = new \PayPal\Api\PaymentExecution();
$execution->setPayerId($request['PayerID']);
foreach($payment->transactions as $transaction)
{
    $execution->addTransaction($transaction);
}

try
{
    $result = $payment->execute($execution, $apiContext);
}
catch (\PayPal\Exception\PayPalConnectionException $ex)
{
    dd($ex);
}
catch (Exception $ex)
{
    dd($ex);
}

我的问题是...如何确认付款已成功执行,并且款项已输入我的 PayPal 帐户?

我假设我必须对 $result 变量做一些事情......但是什么? PayPal PHP SDK 文档示例只是使用原始 PaymentID 再次获取付款...但这并不能确认我已收到款项。

【问题讨论】:

  • 为什么不 var_dump($result) 看看返回了什么?你也应该使用 IPN:developer.paypal.com/docs/classic/products/…
  • 我这样做了,唯一看起来有用的是表示它已获得批准的“状态”。但是批准状态是在执行之前设置的......我使用 IPN,但物品会自动交付给用户,这就是为什么我需要能够自动确认销售是否成功。
  • 根据 IPN 响应而非结帐响应 IMO 自动将商品交付给用户。
  • 如果要检查是否成功,请使用if/else
  • 可以编辑结账时的 POST 数据,只收取 0.01 美分的费用,并将该退货作为完成的付款,因此您必须检查以确保金额​​与产品数量也是如此。

标签: php paypal paypal-rest-sdk


【解决方案1】:

你应该使用Instant Payment Notification

首先你必须configure你的PayPal账户

【讨论】:

    【解决方案2】:

    您将无法这样做,因为交易是指令而非实时交易。在资金通过清算银行之前,资金不会显示在您的帐户中。

    【讨论】:

      猜你喜欢
      • 2011-12-24
      • 2014-08-23
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 2016-08-22
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多