PayPal Plus — Webhook — для изменения статуса платежа в базе данных

Если клиент в моем магазине OpenCart платит через PayPal, мне нужен веб-крючок для контроля изменений платежа, таких как ожидание, возврат и т. Д.

Таким образом, если клиент оплачивает через PayPal, метод, указанный ниже, вызывается из PayPal Plus через URL-адрес webhook:

public function webhook(){

$token = $this->getToken();

$mode = ".sandbox";

$ch = curl_init();

$header = array('Content-Type: application/json', 'Authorization:Bearer'.$token);

curl_setopt($ch,  CURLOPT_HTTHEADER, $headers);

curl_setopt($ch, CURLOPT_URL, "https://api".$mode."paypal.com/v1/notification/webhooks/");

curl_setopt($ch,  CURLOPT_HEADER, false);
curl_setopt($ch,  CURLOPT_SSL_VERYFYPEER, false);
curl_setopt($ch,  CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch,  CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);

$json = json_decode($result);
}

На данный момент мне нужны текущие идентификаторы транзакции и новый статус платежа для обновления значений в моей базе данных.

Может кто-нибудь сказать мне, как я могу получить эти параметры в методе «webhook»?

Редактировать:

Результат:

json stdClass Object
(
[webhooks] => Array
(
[0] => stdClass Object
(
[id] => 5EB94006KU40xxxxx
[url] => https://shopexample.de/index.php?route=payment/pp_plus/webhook
[event_types] => Array
(
[0] => stdClass Object
(
[name] => *
[description] => ALL
[status] => ENABLED
)

)

[links] => Array
(
[0] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v1/notifications/webhooks/5EB94006KU40xxxxx
[rel] => self
[method] => GET
)

[1] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v1/notifications/webhooks/5EB94006KU40xxxxx
[rel] => update
[method] => PATCH
)

[2] => stdClass Object
(
[href] => https://api.sandbox.paypal.com/v1/notifications/webhooks/5EB94006KU40xxxxx
[rel] => delete
[method] => DELETE
)

)

)

)

)

3

Решение

Получить данные, которые вам нужны, легко.
Вы вызываете PP, и результатом является переменная json_encoded ($ json).

Теперь у вас есть доступ к этим значениям, как:

$webhooks[0]->id

Но для получения нужных вам данных (здесь транзакционный_ид и новый статус) вы используете неправильный вызов.

payment/payments/PAYMENT_ID

это сервис, который вам нужен для этого.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]