gpt4 book ai didi

javascript - 如何在 meteor 中为 Stripe 卡充值

转载 作者:行者123 更新时间:2023-12-03 08:50:13 25 4
gpt4 key购买 nike

在 Meteor 中尝试充值,度过了一段愉快的时光。我得到的错误是:调用方法“chargeCard”时出现异常错误:匹配错误:预期字符串,获取对象。我确实得到了输入电子邮件和卡号的模式,但按下支付按钮后,在终端中我收到了错误消息。

如何正确调用计费函数?我找不到任何与我的实现方式非常匹配的教程。

设置非常基本。我还安装了jquery。

模板:

<template name="hello">
<form id="myForm">
<input type="text" id="amount" name="amount"/>
<input type="hidden" id="stripeToken" name="stripeToken"/>
<input type="hidden" id="stripeEmail" name="stripeEmail"/>
</form>
<hr>
<button id="customButton">Pay</button>
</template>

js:

if (Meteor.isClient) {


Template.hello.helpers({

});

Template.hello.events({
'click button': function (e) {
e.preventDefault();
var handler = StripeCheckout.configure({
key: 'pk_test_rand',
token: function(token) {
$("#stripeToken").val(token.id);
$("#stripeEmail").val(token.email);
$("#myForm").submit();
Meteor.call('chargeCard', token); // this seem not right?
}
});

// Showing the pop up Stripe dialog
var amount = $("#amount").val() *100;
// Open Checkout with further options
handler.open({
name: 'Demo Site',
description: '2 widgets ($20.00)',
amount: amount
});


// Close Checkout on page navigation
$(window).on('popstate', function() {
handler.close();
});
}
});

Meteor.startup(function(){
$.getScript('https://checkout.stripe.com/checkout.js', function(){
// script has loaded
});
});


}

if (Meteor.isServer) {
Meteor.methods({
'chargeCard': function(stripeToken) {
check(stripeToken, String);
var Stripe = StripeAPI('sk_test_rand');

Stripe.charges.create({
source: stripeToken,
amount: 5000, // this is equivalent to $50
currency: 'usd'
}, function(err, charge) {
console.log(err, charge);
});
}
});
}

最佳答案

看来您正在传递整个 token 对象:

Meteor.call('chargeCard', token);

但是您的 chargeCard() 方法需要一个字符串:

check(stripeToken, String);

因此您需要仅传递 token id:

Meteor.call('chargeCard', token.id);

或更改您的 chargeCard() 方法以期望并使用整个 token 对象:

Meteor.methods({
'chargeCard': function(stripeToken) {
check(stripeToken, Object);
var Stripe = StripeAPI('sk_test_rand');

Stripe.charges.create({
source: stripeToken.id,
...

关于javascript - 如何在 meteor 中为 Stripe 卡充值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705247/

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