背景我正在尝试将条纹付款集成到我的网站中。我需要使用我的专用条纹密钥创建一个条纹用户。我将此密钥存储在服务器上,并调用服务器方法来创建用户。也许还有另一种方法可以做到这一点?这是条纹API(为方便起见,在下面复制):https : //stripe.com/docs/api/node#create_customer//stripe api callvar Stripe = StripeAPI('my_secret_key');Stripe.customers.create({ description: 'Customer for test@example.com', card: "foobar" // obtained with Stripe.js}, function(err, customer) { // asynchronously called});我的尝试和结果我一直在使用相同的客户端代码和不同的服务器代码。所有尝试都会立即在客户端的console.log(...)上给出undefined,但在服务器的console.log(...)上给出正确的响应://clientMeteor.call('stripeCreateUser', options, function(err, result) { console.log(err, result);});//server attempt 1var Stripe = StripeAPI('my_secret_key');Meteor.methods({ stripeCreateUser: function(options) { return Meteor.wrapAsync(Stripe.customers.create({ description: 'Woot! A new customer!', card: options.ccToken, plan: options.pricingPlan }, function (err, res) { console.log(res, err); return (res || err); })); }});//server attempt 2var Stripe = StripeAPI('my_secret_key');Meteor.methods({ stripeCreateUser: function(options) { return Meteor.wrapAsync(Stripe.customers.create({ description: 'Woot! A new customer!', card: options.ccToken, plan: options.pricingPlan })); }});我也尝试了没有Meteor.wrapAsync的情况。编辑-我也在使用这个包:https : //atmospherejs.com/mrgalaxy/stripe
3 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
另一个选择是此程序包可以实现类似的目标。
meteor add meteorhacks:async
从README包中:
Async.wrap(函数)
包装一个异步函数,并允许它在Meteor内部运行而无需回调。
//declare a simple async function
function delayedMessge(delay, message, callback) {
setTimeout(function() {
callback(null, message);
}, delay);
}
//wrapping
var wrappedDelayedMessage = Async.wrap(delayedMessge);
//usage
Meteor.methods({
'delayedEcho': function(message) {
var response = wrappedDelayedMessage(500, message);
return response;
}
});
添加回答
举报
0/150
提交
取消