首页 > 解决方案 > 如何检索条带会话ID php

问题描述

我讨厌在这里问这么简单的问题,但我似乎无法弄清楚。我创建了一个成功通过的条带结帐会话,但无法获得响应。我已阅读此处的条带文档和答案,但似乎仍然无法返回条带会话 ID。这是我尝试过的

<?php

require_once('stripe-php-7.86.0/init.php');

$priceId = $_POST['priceId'];

$stripe = new \Stripe\StripeClient(
    'my secret key here'
  );

  $stripe->checkout->sessions->create([
    'success_url' => 'http://localhost/stripe_test/success.html',
    'cancel_url' => 'http://localhost/stripe_test/cancel.html',
    'payment_method_types' => ['card'],
    'line_items' => [
      [
        'price' => $priceId,
        'quantity' => 1,
      ],
    ],
    'mode' => 'subscription',
  ]);

  // I've tried all of these individually, none of them work.
  
  echo json_encode($stripe);
  echo $stripe['id'];
  echo json_encode($stripe['id']);
  echo $stripe->checkout->sessions['id'];
  echo json_encode(['sessionId' => $stripe['id']]);

标签: phpstripe-payments

解决方案


根据Stripe 官方文档,您可以将 的返回值分配给$stripe->checkout->sessions->create您要使用的变量,然后访问该属性id

$stripe->checkout->sessions->create返回Session object

例如

$stripe_session = $stripe->checkout->sessions->create([
    'success_url' => 'http://localhost/stripe_test/success.html',
    'cancel_url' => 'http://localhost/stripe_test/cancel.html',
    'payment_method_types' => ['card'],
    'line_items' => [
      [
        'price' => $priceId,
        'quantity' => 1,
      ],
    ],
    'mode' => 'subscription',
  ]);
echo $stripe_session->id;

推荐阅读