#stripe-payments
#stripe-платежи
Вопрос:
Я использую Sripe PHP SDK по этой ссылке
Когда я пытаюсь использовать любой API Stripe Payment, он становится успешным, но возвращаемый им ответ пуст
Я следую инструкциям API из документации Stripe API
Например, я использую следующий фрагмент кода для создания платежа
$stripe = new StripeStripeClient(
'SECRET_KEY'
);
$stripe->paymentIntents->create([
'amount' => 1200,
'currency' => 'usd',
'payment_method_types' => ['card']
]);
// after successfull payment, you can store payment related information into your database
$this->response([ 'success' =>'1' ,'status' => 'success', 'message' => $stripe], REST_Controller::HTTP_OK);
Но он не возвращает никакого ответа, вместо этого возвращаемый объект пуст.
Вот ответ
{"success":"1","status":"success","message":{}}
Он должен возвращать объект, подобный этому, в сообщении
{
"id": "pi_1HkSRrKUkp6sNA1QWNFwUOLd",
"object": "payment_intent",
"amount": 2000,
"amount_capturable": 0,
"amount_received": 0,
"application": null,
"application_fee_amount": null,
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
"charges": {
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/charges?payment_intent=pi_1HkSRrKUkp6sNA1QWNFwUOLd"
},
"client_secret": "SECRET_KEY",
"confirmation_method": "automatic",
"created": 1604659539,
"currency": "usd",
"customer": null,
"description": "Created by stripe.com/docs demo",
"invoice": null,
"last_payment_error": null,
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
"payment_method": null,
"payment_method_options": {
"card": {
"installments": null,
"network": null,
"request_three_d_secure": "automatic"
}
},
"payment_method_types": [
"card"
],
"receipt_email": null,
"review": null,
"setup_future_usage": null,
"shipping": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "requires_payment_method",
"transfer_data": null,
"transfer_group": null
}
Ответ №1:
Откуда именно вы взяли этот пример? Он выглядит неполным.
Вы должны просто сохранить вывод вызова API в некоторой переменной, а затем вернуть, client_secret
например:
$intent = $stripe->paymentIntents->create([
'amount' => 1200,
'currency' => 'usd',
'payment_method_types' => ['card']
]);
$this->response([ 'success' =>'1' ,'status' => 'success', 'message' => $intent->client_secret], REST_Controller::HTTP_OK);