Как можно получить родительский платеж в виде возмещения, который мне уведомил PayPal?
Я получил это уведомление (webhook) от PayPal:
{
"create_time": "2015-02-20T10:56:36Z",
"event_type": "PAYMENT.SALE.REFUNDED",
"id": "WH-XXX-XXX",
"links": [
{
"href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-XXX-XXX",
"method": "GET",
"rel": "self"},
{
"href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-XXX-XXX/resend",
"method": "POST",
"rel": "resend"}
],
"resource": {
"amount": {
"currency": "EUR",
"details": {
"subtotal": "-XX.XX",
"tax": "XX.XX"},
"total": "-XX.XX"},
"create_time": "2015-02-20T10:55:10Z",
"id": "XXX",
"links": [
{
"href": "https://10.73.133.169:17881/v1/payments/refund/XXX",
"method": "GET",
"rel": "self"}
],
"state": "completed"},
"resource_type": "sale",
"summary": "A EUR XX.XX EUR sale payment was refunded"}
Если я беру ресурс -> id и выполняю следующий запрос с PayPal PHP-SDK, я получаю объект возврата, но без поля «parent_payment» (задокументировано здесь: https://developer.paypal.com/docs/api/#look-up-a-refund)
PayPal\Api\Refund::get($id, $api);
Каждый второй звонок, как ..
PayPal\Api\Sale::get($id, $api);
или же
PayPal\Api\Transaction::get($id, $api);
или же
PayPal\Api\Payment::get($id, $api);
терпит неудачу!
Что не так с моими уведомлениями или методами, которые я использую?
ОБНОВИТЬ: Вот мой ответ из поиска Refund :: get ():
{
"id": "XXX",
"create_time": "2015-02-20T10:55:10Z",
"state": "completed",
"amount": {
"total": "-XX.XX",
"currency": "EUR",
"details": {
"subtotal": "-XX.XX",
"tax": "XX.XX"}
},
"links": [
{
"href": "https://api.paypal.com/v1/payments/refund/XXX",
"rel": "self",
"method": "GET"}
]
}
Как правило, когда вы делаете поиск по возврату, вы получите ответ, который включает parent_payment
он должен иметь идентификатор платежа, который можно использовать для получения объекта платежа.
Вот как будет выглядеть ответ:
Возврат: получить ()
{
"id": "3KJ86032KA0123648",
"create_time": "2015-02-23T22:25:31Z",
"update_time": "2015-02-23T22:25:31Z",
"state": "completed",
"amount": {
"total": "-0.01",
"currency": "USD"},
"sale_id": "4JE73984NP0170710",
"parent_payment": "PAY-0J694581CG996145EKTV2RWA",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/refund/3KJ86032KA0123648",
"rel": "self",
"method": "GET"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-0J694581CG996145EKTV2RWA",
"rel": "parent_payment",
"method": "GET"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/4JE73984NP0170710",
"rel": "sale",
"method": "GET"}
]
}
Оплата: получить ();
{
"id": "PAY-1XX00578GL815852KKTV2RGI",
"create_time": "2015-02-23T22:24:25Z",
"update_time": "2015-02-23T22:24:28Z",
"state": "approved",
"intent": "sale",
"payer": {
"payment_method": "credit_card",
"funding_instruments": [
{
"credit_card": {
"type": "visa",
"number": "xxxxxxxxxxxx2259",
"expire_month": "11",
"expire_year": "2019",
"first_name": "Joe",
"last_name": "Shopper"}
}
]
},
"transactions": [
{
"amount": {
"total": "20.00",
"currency": "USD",
"details": {
"subtotal": "17.50",
"tax": "1.30",
"shipping": "1.20"}
},
"description": "Payment description",
"invoice_number": "54eba89962365",
"item_list": {
"items": [
{
"name": "Ground Coffee 40 oz",
"price": "7.50",
"currency": "USD",
"quantity": "1",
"description": "Ground Coffee 40 oz",
"tax": "0.30"},
{
"name": "Granola bars",
"price": "2.00",
"currency": "USD",
"quantity": "5",
"description": "Granola Bars with Peanuts",
"tax": "0.20"}
]
},
"related_resources": [
{
"sale": {
"id": "40F92773GL716624V",
"create_time": "2015-02-23T22:24:25Z",
"update_time": "2015-02-23T22:24:28Z",
"amount": {
"total": "20.00",
"currency": "USD"},
"state": "partially_refunded",
"parent_payment": "PAY-1XX00578GL815852KKTV2RGI",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/40F92773GL716624V",
"rel": "self",
"method": "GET"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/40F92773GL716624V/refund",
"rel": "refund",
"method": "POST"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-1XX00578GL815852KKTV2RGI",
"rel": "parent_payment",
"method": "GET"}
]
}
},
{
"refund": {
"id": "50V96618DN7676452",
"create_time": "2015-02-23T22:24:28Z",
"update_time": "2015-02-23T22:24:28Z",
"state": "completed",
"amount": {
"total": "-0.01",
"currency": "USD"},
"sale_id": "40F92773GL716624V",
"parent_payment": "PAY-1XX00578GL815852KKTV2RGI",
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/refund/50V96618DN7676452",
"rel": "self",
"method": "GET"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-1XX00578GL815852KKTV2RGI",
"rel": "parent_payment",
"method": "GET"},
{
"href": "https://api.sandbox.paypal.com/v1/payments/sale/40F92773GL716624V",
"rel": "sale",
"method": "GET"}
]
}
}
]
}
],
"links": [
{
"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-1XX00578GL815852KKTV2RGI",
"rel": "self",
"method": "GET"}
]
}
Других решений пока нет …