【发布时间】:2017-12-05 17:29:11
【问题描述】:
如何在同一页面上有两个 Stripe 结帐?
目前,我有两个按钮,一个charge.php 和一个charge-monthly.php 文件。
希望实现:
- 两个单独的按钮:一个用于一次性捐款/另一个用于每月捐款。
表格输入 - 单次捐赠
<form action="index.php" method="post">
<input class="form-control donation-page" id="custom-donation-amount" min="1" step="10.00" type="number" value="100">
<script src="https://checkout.stripe.com/checkout.js"></script>
<button class="pay-button donation-page" id="customButton">
<h4 class="donate-text button donation-page">DONATE</h4>
</button>
</form>
表格输入 - 每月捐款
<form action="index.php" method="post">
<input class="form-control donation-page" id="custom-donation-amount-month" min="1" step="10.00" type="number" value="100">
<script src="https://checkout.stripe.com/checkout.js"></script>
<button class="pay-button donation-page" id="customButton-month">
<h4 class="donate-text button donation-page">DONATE MONTHLY</h4>
</button>
</form>
这是运行 Stripe Checkout 的脚本:
<script type="text/javascript">
var handler = StripeCheckout.configure({
key: 'pk_test_xxxxxxx',
image: 'assets/img/500x500.jpg',
locale: 'auto',
billingAddress: 'true',
token: function(token) {
// Use the token to create the charge with a server-side script.
// You can access the token ID with `token.id
$.post( "charge.php", { stripeToken: token.id, amount:$("#custom-donation-amount").val(), description:$("data-description").val(), stripeEmail:token.email})
// check if it worked
.done(function( data ) {
console.log( "Card charged: " + data );
});
$.post( "charge-month.php", { stripeToken: token.id, amount:$("#custom-donation-amount-month").val(), description:$("data-description").val(), stripeEmail:token.email})
// check if it worked
.done(function( data ) {
console.log( "Card charged: " + data );
});
}
});
$('#customButton').on('click', function(e) {
// Open Checkout with further options
var amount = $("#custom-donation-amount").val() * 100;
handler.open({
name: 'xxxxxxxxx',
description: 'xxxxxxxxxxx',
amount: amount
});
e.preventDefault();
});
$('#customButton-month').on('click', function(e) {
// Open Checkout with further options
var amount = $("#custom-donation-amount-month").val() * 100;
handler.open({
name: 'xxxxxxxxxxx',
description: 'xxxxxxxxxxxxx',
amount: amount
});
e.preventDefault();
});
// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
</script>
看,现在它以相同的方式调用两个 post charge.php 和 charge-monthly.php 以便它按顺序进行。如何使charge.php 文件仅在他们单击customButton 时触发,而charge-monthly.php 文件在单击custonButton-monthly 时触发?
【问题讨论】:
标签: php jquery stripe-payments checkout