Omnipay PayPal集成 - 确认付款状态



我使用Omnipay PayPal库。我可以成功付款,但在确认付款状态时遇到问题。在回应中,我总是得到PAYMENTINFO_0_PAYMENTSTATUS => Pending

这是我的购买代码 - 我被重定向到PayPal,这里一切都很好:

    $gateway = Omnipay::create("PayPal_Express");
    $gateway->setUsername( $this->USERNAME );
    $gateway->setPassword( $this->PASSWORD );
    $gateway->setSignature( $this->SIGNATURE );
    $gateway->setTestMode(true);
    $params = [
      'cancelUrl'=>'http://xxxx.com/paypal_tests/cancel',
      'returnUrl'=>'http://xxxx.com/paypal_tests/confirm_paypal',
      'amount' =>  '10.00',
      'currency' => 'EUR'
    ];
    $response = $gateway->purchase( $params )->send();
    $response->redirect();

和返回URL,在响应中我总是得到[PAYMENTINFO_0_PAYMENTSTATUS] => Pending

      $gateway = Omnipay::create("PayPal_Express");
      $gateway->setUsername( $this->USERNAME );
      $gateway->setPassword( $this->PASSWORD );
      $gateway->setSignature( $this->SIGNATURE );
      $gateway->setTestMode(true);
      $response = $gateway->completePurchase( $this->session->PAYPAL  )->send();
      $data = $response->getData(); // this is the raw response object
      echo print_r($data);

这是完整的响应,如您所见,状态为"挂起"。

Array
(
    [TOKEN] => EC-1RA27631NJ550530P
    [SUCCESSPAGEREDIRECTREQUESTED] => false
    [TIMESTAMP] => 2016-03-07T10:29:43Z
    [CORRELATIONID] => 8010f2af74b8
    [ACK] => Success
    [VERSION] => 119.0
    [BUILD] => 18316154
    [INSURANCEOPTIONSELECTED] => false
    [SHIPPINGOPTIONISDEFAULT] => false
    [PAYMENTINFO_0_TRANSACTIONID] => 97R504742X7344311
    [PAYMENTINFO_0_TRANSACTIONTYPE] => expresscheckout
    [PAYMENTINFO_0_PAYMENTTYPE] => instant
    [PAYMENTINFO_0_ORDERTIME] => 2016-03-07T10:29:41Z
    [PAYMENTINFO_0_AMT] => 1.44
    [PAYMENTINFO_0_TAXAMT] => 0.00
    [PAYMENTINFO_0_CURRENCYCODE] => EUR

    [PAYMENTINFO_0_PAYMENTSTATUS] => Pending

    [PAYMENTINFO_0_PENDINGREASON] => multicurrency
    [PAYMENTINFO_0_REASONCODE] => None
    [PAYMENTINFO_0_PROTECTIONELIGIBILITY] => Ineligible
    [PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] => None
    [PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] => Z6GHSVEW4KGWG
    [PAYMENTINFO_0_ERRORCODE] => 0
    [PAYMENTINFO_0_ACK] => Success
)

如何确认付款已处理、确认且

发货安全?

谢谢!

好的,我发现了问题,它在这里:

[PAYMENTINFO_0_PENDINGREASON] => multicurrency

基本上,我的客户的测试帐户在美国,卖方的测试帐户以欧元收费,这就是它待处理的原因......

答案就在这里:如何使用omnipay来检查它是否是待处理的付款

最新更新