Разбор / использование данных WebhookEvent, отправленных на прослушиватель PHP - PullRequest
0 голосов
/ 16 ноября 2018

Я получаю данные JSON от webhook PayPal до моей конечной точки.

Я, конечно, могу разобрать их в объект PHP.Это лучший способ обработать эти данные?Я бы подумал, что данные JSON могут быть преобразованы обратно в новый объект 'WebhookEvent', а затем обработаны таким образом ??Но или это не тот случай, или я делаю что-то не так.

use \PayPal\Api\WebhookEvent;

$webhook_json_data = '{"auth_algo": "SHA256withRSA","transmission_id": "d97395d0-de4a06f7","cert_url": "https://api.sandbox.paypal.com/v1/notifications/certs/CERT-360caa42-fca2a594-aecacc47","webhook_id": "2V9E918418","transmission_sig": "Svsp/4l67b4sasdq/rjQojgKoOG95rltTuEtpip/UeNxTap7I/ao7Vg7VDJIYPaEzTz1UDNdsmI+/l1dhVfQsEAImg1bz0VpZ+0+JAwUuZpr0EtF7g==","transmission_time": "2018-11-16T03:01:01Z","webhook_event": {"id":"WH-6DT935852K089633W-9X42044474276933K","event_version":"1.0","create_time":"2018-11-16T03:01:01.000Z","resource_type":"payouts","event_type":"PAYMENT.PAYOUTSBATCH.SUCCESS","summary":"Payouts batch completed successfully.","resource":{"batch_header":{"payout_batch_id":"7PHK3S3LKM8D6","batch_status":"SUCCESS","time_created":"2018-11-16T03:00:42Z","time_completed":"2018-11-16T03:01:01Z","sender_batch_header":{"sender_batch_id":"5bee32daa6bd8"},"amount":{"currency":"USD","value":"235.0"},"fees":{"currency":"USD","value":"1.25"},"payments":5},"links":[{"href":"https://api.sandbox.paypal.com/v1/payments/payouts/7PHM8D6","rel":"self","method":"GET"}]},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6DT9276933K","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6DT933K/resend","rel":"resend","method":"POST"}]}}';

$webhook_obj =  json_decode ( $webhook_json_data );

$w_event = new \PayPal\Api\WebhookEvent($webhook_json_data);

// this gives PAYMENT.PAYOUTSBATCH.SUCCESS
echo $webhook_obj->webhook_event->event_type ."<br>"; 

// this yields nothing !! (the $w_event data appears to 
// be 'protected' and thus inaccessible)
echo $w_event->event_type ."<br>";  

Это правильный способ использовать данные, полученные в уведомлении Webhook, чтобы просто пройти через декодированную структуру JSON?Например, я хочу подтвердить общую сумму платежа Payouts, которая в данном случае составляет $ 235,00

. Я могу получить ее, используя:

$webhook_obj->webhook_event->resource->batch_header->amount->value

Но, похоже, должно бытьлучший способ обработать эти уведомления Webhook ??

...