我正在使用条纹来实现支付功能。在支付功能中,我有两个订阅计划,分别是每月和每年。从条带仪表板,我创建了产品,并在其下创建了两个计划,每月和每年。根据名称,我将间隔分别设置为每月和每年。
我可以成功地创建订阅。但是当我尝试更改我的订阅计划时,我得到了这个错误:货币和间隔字段必须在此订阅的所有计划中匹配。在间隔字段中发现不匹配。
说货币和时间间隔必须匹配时出错。但是我怎么才能让它们变得一样。对于月度计划,我设置了月度间隔,对于年度计划,我设置了年间隔,我想这是合适的。不知道我搞错了什么地方。
下面是我的代码:
const subscription = getSubscription(req.body.subscriptionId);
subscription.then((value) => {
id = value.id;
})
stripe.subscriptions.update(
req.body.subscriptionId,
{
items: [{
id: id,
plan: req.body.planId,
}]
},
function(err, subscription) {
if(err) {
console.log('error .... ', err);
return;
}
console.log('updated subscription... ', subscription);
});
async function getSubscription(subscriptionId) {
return await stripe.subscriptions.retrieve(subscriptionId);
}
我取自下面的代码:https://stripe.com/docs/billing/subscriptions/upgrading-downgrading
请帮帮我。
发布于 2020-11-07 00:21:39
对于仍在寻求解决此问题的任何人,您必须在降级或升级计划时指定当前订阅项目ID。
如果没有已有的item ID,计费间隔不同(月<->年)会抛出错误。
const subscription = await stripe.subscriptions.retrieve('SUBSCRIPTION_ID');
stripe.subscriptions.update('SUBSCRIPTION_ID', {
cancel_at_period_end: false,
proration_behavior: 'create_prorations',
items: [{
id: subscription.items.data[0].id,
price: 'NEW_PRICE_ID',
}]
});
下面这一行很关键:
id: subscription.items.data[0].id,
来源:Stripe Docs
发布于 2019-09-13 03:44:21
在单次订阅中创建多计划时请检查限制
发布于 2020-09-29 07:06:58
我只想补充一下-如果您在同一客户id下有多个订阅,则所有这些订阅必须在间隔内匹配。因此,在我的示例中,我在同一客户ID下创建了多个用于测试目的的订阅,这导致: Currency和interval字段必须在此订阅的所有计划中匹配。在间隔字段中发现不匹配。一旦我开始使用新的客户ID和新的订阅,更新间隔就可以很好地工作。(因为只有一个订阅,并且只有一个间隔需要更改)
https://stackoverflow.com/questions/57489962
复制相似问题