生意失败了,我该怎么办?仪表板不允许我使用简单的命令一次性取消批量的所有订阅和计划。
当您需要取消所有客户的订阅或至少取消其中相当数量的订阅时,我必须创建我所说的“世界末日”脚本。
步骤:
fml.js
const stripe = require('stripe')('your api key goes here');
const subscriptions = [
// paste all subscriptions ids here or parse the array from the first column of the CSV file
];
async function cancelSubscription(s) {
try {
const deleted = await stripe.subscriptions.del(s);
console.log(deleted.id);
} catch (e) {
console.log(e)
}
}
function delay(t, val) {
return new Promise(function(resolve) {
setTimeout(function() {
resolve(val);
}, t);
});
}
(async () => {
for (const sub of subscriptions) {
await cancelSubscription(sub)
await delay(1000) // this delay prevents going over the API limit, you can decrease it
// but you'll miss the opportunity to say goodbye to the ids rolling through your screen
}
})()
祝您一切顺利,并且您永远不需要使用这段代码。
如果您有订阅 ID 列表,也可以使用 Stripe CLI 取消它们,如下所示:
stripe subscriptions cancel <subscription-ID> --live
或更新它们以在当前期间结束时取消:
stripe subscriptions update <subscription-ID> -d cancel_at_period_end=true --live
您可能需要先更新 CLI 使用的 API 密钥,以将“所有计费资源”资源类型更新为“写入”。