Я не смог найти никаких подробностей для этого с помощью PHP, поэтому я надеюсь, что кто-то может помочь мне заполнить этот скрипт?Доступ к данным подписки с помощью Stripes Webhooks PHP
Я ищу информацию о подписке из события Webhook API-интерфейса Stripe. Событие, над которым я работаю, - invoice.payment_succeeded
, хотя я изо всех сил пытаюсь получить доступ к информации о подписке. Вот тест событие в полном объеме:
{
"id": "evt_19HdmRL346436RYAmvgxkr",
"object": "event",
"api_version": "2016-07-06",
"created": 1479580899,
"data": {
"object": {
"id": "in_19HdmRLniq434634643dO2gU",
"object": "invoice",
"amount_due": 700,
"application_fee": null,
"attempt_count": 1,
"attempted": true,
"charge": "ch_19Hdm3463464365IDDXX",
"closed": true,
"currency": "gbp",
"customer": "315464619",
"date": 1479580899,
"description": null,
"discount": null,
"ending_balance": 0,
"forgiven": false,
"lines": {
"object": "list",
"data": [
{
"id": "sub_9apRC346346CMNg",
"object": "line_item",
"amount": 700,
"currency": "gbp",
"description": null,
"discountable": true,
"livemode": false,
"metadata": {
"website_ref": "Z8ckRo2x",
"user_id": "1"
},
"period": {
"start": 1479580899,
"end": 1482172899
},
"plan": {
"id": "AdFree",
"object": "plan",
"amount": 700,
"created": 1479261871,
"currency": "gbp",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"name": "AdFree",
"statement_descriptor": "SNAPPYSITES ADFREE",
"trial_period_days": null
},
"proration": false,
"quantity": 1,
"subscription": null,
"type": "subscription"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/invoices/in_19HdmRLn34353465dO2gU/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": null,
"paid": true,
"period_end": 1479580899,
"period_start": 1479580899,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"subscription": "sub_9a2552OA5553MNg",
"subtotal": 700,
"tax": null,
"tax_percent": null,
"total": 700,
"webhooks_delivered_at": null
}
},
"livemode": false,
"pending_webhooks": 1,
"request": "req_9apRx9555ZVm55",
"type": "invoice.payment_succeeded"
}
В настоящее время я слушал с этим незаконченным сценарием:
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
$event_id = $event_json->id;
$event = \Stripe\Event::retrieve($event_id);
if($event->type == 'invoice.payment_succeeded'){
$invoice = $event->data->object;
$subscription = $invoice->lines->data->plan;
$customer = \Stripe\Customer::retrieve($invoice->customer);
print_r($subscription);
}
К сожалению, я не получает никакого ответа от $subscription
массива. И я пытался использовать различные методы, такие как; $subscription = $invoice->plan;
или $subscription = $invoice->data->plan;
и т.д ...
я получить данные для $invoice
& $customer
, так что я знаю, что они оба правильно функционировать. Основное внимание уделяется извлечению информации метаданных:
"metadata": {
"website_ref": "Z8ckRo2x",
"user_id": "1"
}
Таким образом, я знаю, к какой учетной записи относится этот платеж. Надеясь, что кто-то может понять, что я делаю неправильно.