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

时间:2016-06-07 05:31:54

标签: php stripe-payments payment

我正在尝试在购买后获取交易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>

我的代码有问题吗?

2 个答案:

答案 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>
相关问题