STRIPE API возвращает пустой ответ

#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);