Я интегрировал функцию проверки с помощью смарт-кнопок в торговую площадку, где любой может продавать / покупать товары у кого угодно.
Я также успешно установил прослушиватель веб-перехватчика, который получает уведомление, если был произведен возврат платежа.
Но в теле полученного события возврата я не могу найти информацию, КАКАЯ платеж / транзакция была возвращена.
Читая событие с помощью
file_get_contents('php://input');
Я получу детали события в кодировке JSON следующим образом:
{
"id":"WH-3WS24689NP236083V-89P84301TC0576916",
"event_version":"1.0",
"create_time":"2020-07-10T15:36:33.720Z",
"resource_type":"refund",
"resource_version":"2.0",
"event_type":"PAYMENT.CAPTURE.REFUNDED",
"summary":"A EUR 7.89 EUR capture payment was refunded",
"resource":{
"seller_payable_breakdown":{
"total_refunded_amount":{
"value":"7.89",
"currency_code":"EUR"},
"paypal_fee":{
"value":"0.15",
"currency_code":"EUR"
},
"gross_amount":{
"value":"7.89",
"currency_code":"EUR"},
"net_amount": {
"value":"7.74",
"currency_code":"EUR"
}
},
"amount":{
"value":"7.89",
"currency_code":"EUR"
},
"update_time":"2020-07-10T08:36:00-07:00",
"create_time":"2020-07-10T08:36:00-07:00",
"links":[
{"method":"GET","rel":"self","href":"https://api.sandbox.paypal.com/v2/payments/refunds/3TF6899507696873K"},
{"method":"GET","rel":"up","href":"https://api.sandbox.paypal.com/v2/payments/captures/5U107751JJ334642K"}
],
"id":"3TF6899507696873K",
"status":"COMPLETED"
},
"links":[{
"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-3WS24689NP236083V-89P84301TC0576916",
"rel":"self",
"method":"GET"},{
"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-3WS24689NP236083V-89P84301TC0576916/resend",
"rel":"resend",
"method":"POST"}
]
}
Итак, я получаю данные. Но в данных я не могу найти никакой информации, такой как «идентификатор транзакции», «идентификатор заказа» или аналогичной, которую я мог бы использовать для поиска в БД, если она соответствует идентификатору захвата (из порядка захвата) предыдущего заказа.
Что мне нужно сделать, чтобы получить нужную мне информацию? Или я ищу не в том месте / не в том поле?
В случае, если мне нужно сначала авторизовать запрос и сделать еще один запрос для получения дополнительных данных, я был бы очень благодарен за ПОЛНЫЙ пример (или ссылку к примеру) в PHP, поскольку я не могу понять документацию Paypal по веб-перехватчикам.
РЕДАКТИРОВАТЬ: Кажется, что в одной из ссылок (в случае выше), идентификатор захвата (который совпадает с идентификатором транзакции txn) исходного платежа «скрыт» в одной из ссылок, обеспечивающих конечные точки. В данном случае: 5U107751JJ334642K
Я могу только покачать головой, когда Paypal делает невероятно труднодостижимые вещи. Как можно НЕ иметь специального поля с идентификатором исходной транзакции в сообщении о возврате?