Я использую библиотеку PayPal Omnipay. Я могу сделать успешный платеж, но у меня проблемы с подтверждением статуса платежа. В ответ я всегда получаю PAYMENTINFO_0_PAYMENTSTATUS => Pending
Интеграция в Omnipay paypal - подтверждение статуса оплаты
Вот моя покупка код - я попадаю в 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();
И ReturnUrl, где в ответ я всегда получаю [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': https://developer.paypal.com/docs/classic/api/merchant/DoExpressCheckoutPayment_API_Operation_NVP/ –
Спасибо который повернулся чтобы быть проблемой. Даже не заметил этого парама. Благодаря!! – fjckls
Добро пожаловать. –