成功购买后,PHP Stripe获取交易ID

kez*_*iah 1 php payment stripe-payments

我试图在购买后获取交易ID,但它在谢谢页面上返回空

order.php

<?php
\Stripe\Stripe::setApiKey('<test token>');

$amount = 100;
$card = $_POST['stripeToken'];

// Create a Customer
$customer = \Stripe\Customer::create(array(
    "source" => $card,
    "email" => $email,
    "description" => "Example description")
);

// Charge the Customer instead of the card
$charge = \Stripe\Charge::create(array(
    "amount" => 100,
    "currency" => "usd",
    "customer" => $customer->id)
);

// Save the billing info
set_billing([
    'customer_id' => $customer->id,
    'address' => $address,
    'address2' => $address2,
    'city' => $city,
    'state' => $state,
    'country' => $country,
    'postal' => $postal,
    'trans_id' => $charge->id // Save the transaction id
]);

function set_billing($fields = array())
{
    $bdate = time();

    $query = "INSERT INTO billings (
        customer_id, address, address2, city,
        state, postal, country, billing_date, trans_id
    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";

    $stmt = $GLOBALS['sqlConnection']->prepare($query);
    $stmt->bind_param(
        'sssssssis', $fields['customer_id'], $fields['address'], $fields['address2'], $fields['city'], $fields['state'], $fields['postal'], $fields['country'], $bdate, $fields['trans_id']);
    $stmt->execute();
}

// If successful, redirect to thank you page
header('Location: /thankyou.php?id=' . $user_id);
exit;
Run Code Online (Sandbox Code Playgroud)

thankyou.php

<?php
$s = $sql->prepare('SELECT trans_id FROM billings WHERE user_id = ?');
$s->bind_param('i', $_GET['id']);
$s->execute();
$s->bind_result($trans_id);
$s->fetch();
?>

<ul>
    <li>Transaction id: <?php echo $trans_id ?></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的代码有问题吗?

Neh*_*hal 6

当您使用此向客户收费时

$charge = \Stripe\Charge::create(array(
    "amount" => 100,
    "currency" => "usd",
    "customer" => $customer->id)
);
Run Code Online (Sandbox Code Playgroud)

也试试 print_r($charge); // to check the output variables

您将得到它的响应,因为$charge->id这只是事务ID,在您的数据库中插入此事务ID以供将来使用.然后应用您的进一步代码.

然后在thankyou.php中获取您插入的值