gpt4 book ai didi

php - 使用 Stripe 和 PHP 处理可变金额(捐赠)

转载 作者:可可西里 更新时间:2023-11-01 13:17:14 26 4
gpt4 key购买 nike

我需要允许用户使用 Stripe 输入自定义金额。他们在输入中输入他们想要支付的金额。然后我有一个脚本,用于收集默认 strip 结帐按钮下方的金额。但是我应该如何处理 charge.php 上的收费服务器端?

donation.php

    //user enter custom amount
<input type="number" class='form-control'
id="custom-donation-amount"
placeholder="$50.00" min="0" step="10.00 " />

//default stripe checkout button
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_XXXXXXXXXXXXXXX"
data-amount="0"
data-name="ORGANIZATION"
data-description="Saving Penguins"
data-image="logo.png"
data-locale="auto"
data-zip-code="true"
data-billing-address="true"
data-label="DONATE"
data-currency="usd">
</script>

//script to collect variable amount
<script type="text/javascript">
$(function() {
$('.donate-button').click(function(event) {
var amount = $('#custom-donation-amount').val();
$('.stripe-button').attr('data-amount', amount)
});
});
</script>

charge.php

<?php require_once('./config.php');

$token = $_POST['stripeToken'];
$email = $_POST['stripeEmail'];

$customer = \Stripe\Customer::create(array(
'source' => $token,
'email' => $email)
);

$charge = \Stripe\Charge::create(array(
'customer' => $customer->id,
'amount' => $amount,
'currency' => 'usd'
));

header("Location: confirmation.php");
die();


?>

最佳答案

<form>内在放置 Checkout 的地方,您还想添加一个输入以从用户那里收集金额。请注意我为输入指定的名称 amount

<form method="POST" action="/charge.php">
<input type="number" class="form-control" name="amount" id="custom-donation-amount" placeholder="50.00" min="0" step="10.00" />
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_XXXXXXXXXXXXXXX"
data-name="ORGANIZATION"
data-description="Saving Penguins"
data-image="logo.png"
data-locale="auto"
data-billing-address="true"
data-label="DONATE"
data-currency="usd">
</script>
</form>

在你的后端你可以获取这个 amount Checkout 提交时的字段,很像 Stripe 创建的 token

$token  = $_POST['stripeToken'];
$email = $_POST['stripeEmail'];
$amount = $_POST['amount'];

// your code to create a charge
// ...

如果您希望动态更改结账窗口中显示的金额,您应该使用自定义结账,而不是基本的结账 block ,否则它可能无法正确更新。

https://stripe.com/docs/checkout#integration-custom

或者,对于 fiddle : https://jsfiddle.net/ywain/g2ufa8xr/

关于php - 使用 Stripe 和 PHP 处理可变金额(捐赠),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45404591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com