我正在尝试在购买后获取交易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;
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>
我的代码有问题吗?
答案 0 :(得分:6)
使用此
向客户收费时$charge = \Stripe\Charge::create(array(
"amount" => 100,
"currency" => "usd",
"customer" => $customer->id)
);
同时尝试print_r($charge); // to check the output variables
您的回复为$charge->id
这只是交易ID ,请在您的数据库中插入此交易ID以供将来使用。然后应用您的更多代码。
然后在 thankyou.php 中获取已插入的值
答案 1 :(得分:1)
您可以直接使用$ charge-&gt; id
在order.php中更新您的行
// If successful, redirect to thank you page
header('Location: /thankyou.php?id=' . $charge->id );
在thankyou.php中更新您的代码
<ul>
<li>Transaction id: <?php echo $_GET['id'] ?></li>
</ul>