Stripe 动态付款

2024-02-20

我正在与 Stripe 作斗争。我正在使用 PHP,并且正在尝试建立一个简单的商店,没有 CMS。想知道如何将金额传递到 charge.php,以便我可以对不同的产品收取不同的金额。这里是我的代码:

$charge = Stripe_Charge::create(array(
      'customer' => $customer->id,
      'amount'   => 1900;,
      'currency' => 'gbp'
  ));

这是来自index.php的代码 - 我想向客户收取下面表格中“数据量”中的任何费用。不太确定该怎么做。

<form action="inc/charge.php" method="POST">
    <script
            src="https://checkout.stripe.com/checkout.js" class="stripe-button"
            data-key="<?php echo $stripe['publishable_key']; ?>"
            data-amount="1900"
            data-currency="GBP"
            data-name="Pure - Tumblr Theme"
            data-allow-remember-me="false"
            data-description="Premium Tumblr Theme"
            data-image="/128x128.png">
          </script>
</form>

更全面的是,从index.php 到charge.php,而不是相反。

<?php
 #set your variables
 $amount       = 500;
 $name         = 'My Company';
 $currency     = 'gbp';
 $description  = 'Value Plan';
 $uid          = get->your->uid;
 $email        = get->your->email;
?>

<center><form action="../charge.php" method="post">
<!-- make these hidden input types for the post action to charge.php -->
<input type="hidden" name="amount"      value="<?php echo $amount?>">
<input type="hidden" name="name"        value="<?php echo $name;?>">
<input type="hidden" name="currency"    value="<?php echo $currency;?>">
<input type="hidden" name="description" value="<?php echo $description;?>">
<input type="hidden" name="uid"         value="<?php echo $uid;?>">
<input type="hidden" name="email"       value="<?php echo $email;?>">

<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"

        data-key =           "<?php echo $stripe['publishable_key']; ?>"
        data-amount =        "<?php echo $amount;?>"
        data-name =          "<?php echo $name;?>"
        data-currency =      "<?php echo $currency;?>"
        data-description =   "<?php echo $description;?>"
        data-email =         "<?php echo $user->data()->email; ?>"
        data-billing-address =     "true"
        data-allow-remember-me =   "false"
        >

</script>
</form></center>

然后在charge.php中你可以调用你隐藏在index.php中的输入值

<?php
$token        = $_POST['stripeToken'];
$email        = $_POST['email'];
$uid          = $_POST['uid'];
$currency     = $_POST['currency'];
$amount       = $_POST['amount'];
$description  = $_POST['description'];

#This is the standard try catch block stripe suggests
try{
$charge = Stripe_Charge::create(array(
"amount"        => $amount,
"currency"      => $currency,
"customer"      => $charge_to,
"description"   => $description
));

} catch(Stripe_CardError $e) {

$error = $e->getMessage();
// Since it's a decline, Stripe_CardError will be caught
$body = $e->getJsonBody();
$err  = $body['error'];

print('Status is:' . $e->getHttpStatus() . "\n");
print('Type is:' . $err['type'] . "\n");
print('Code is:' . $err['code'] . "\n");
// param is '' in this case
print('Param is:' . $err['param'] . "\n");
print('Message is:' . $err['message'] . "\n");
} catch (Stripe_InvalidRequestError $e) {

// Invalid parameters were supplied to Stripe's API
} catch (Stripe_AuthenticationError $e) {
// Authentication with Stripe's API failed
// (maybe you changed API keys recently)
} catch (Stripe_ApiConnectionError $e) {
// Network communication with Stripe failed
} catch (Stripe_Error $e) {
// Display a very generic error to the user, and maybe send
// yourself an email
} catch (Exception $e) {
// Something else happened, completely unrelated to Stripe
}
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Stripe 动态付款 的相关文章

随机推荐