我正在尝试使用Stripe Connect构建基于Meteor的平台。我想使用"首选" Stripe的身份验证方法(通过Stripe-Account标头https://stripe.com/docs/connect/authentication进行身份验证),以便我可以代表我的用户创建计划和订阅客户。我无法让它发挥作用。我尝试使用第二个params对象,类似于文档中的例子:
var stripeplancreate = Meteor.wrapAsync(Stripe.plans.create, Stripe.plans);
var plan = stripeplancreate({
amount: prod.price,
interval: prod.interv,
name: prod.name,
currency: prod.curr,
id: prod.id+"-"+prod.price+"-"+prod.curr+"-"+prod.interv,
metadata: { prodId: prod._id, orgId: org._id },
statement_descriptor: prod.descr
},{stripe_account: org.stripe_user_id});
但是我在调用方法' createStripeProduct'时得到了#34;异常。错误:Stripe:未知参数([object Object])。你的意思是传递一个选项对象?见https://github.com/stripe/stripe-node/wiki/Passing-Options。"这似乎没有准确反映问题,但促使我尝试在params对象本身添加stripe_account:
var stripeplancreate = Meteor.wrapAsync(Stripe.plans.create, Stripe.plans);
var plan = stripeplancreate({
amount: prod.price,
(...)
statement_descriptor: prod.descr,
stripe_account: org.stripe_user_id
});
然后我收到以下错误:"异常调用方法' createStripeProduct'错误:收到未知参数:stripe_account"
有什么想法吗?有没有人设法使用Stripe Connect stripe_account身份验证与Meteor一起工作,尤其是Meteor.wrapAsync(...)?
答案 0 :(得分:0)
这应该适用于wrapAsync
,但是请在此处查看我的答案,了解wrapAsync
- Wrapping Stripe create customer callbacks in Fibers in Meteor可能存在的问题:
以下是关于wrapAsync
的精彩视频:https://www.eventedmind.com/feed/meteor-meteor-wrapasync
var createStripePlanAsync = function(shoppingCartObject, callback){
stripe.plans.create({
amount: shoppingCartObject.plan.totalPrice,
interval: shoppingCartObject.plan.interval,
name: shoppingCartObject.plan.planName,
currency: "usd",
id: shoppingCartObject.plan.sku //this ID needs to be unique!
}, function(err, plan) {
// asynchronously called
callback(err, plan);
});
};
var createStripePlanSync = Meteor.wrapAsync(createStripePlanAsync);
var myShoppingCart = {
customerInfo: {
name: "Igor Trout"
},
plan: {
totalPrice: 5000,
interval: "month",
name: "Set Sail For Fail Plan",
sku: "062015SSFF"
}
};
// Creates the plan in your Stripe Account
createStripePlanSync(myShoppingCart);
稍后,当您订阅客户计划时,您只需通过首次创建计划时提供的id
计划来参考该计划。
答案 1 :(得分:0)
经过多次尝试,现在,我只是设法使用条带同步软件包而不是“普通”的一个+ wrapAsync。
try{
var plan = Stripe.plans.create({
amount: prod.price,
...
},{stripe_account: org.stripe_user_id});
}catch(error){
// ... process error
}