在确认之前预览订阅计划变更的影响。返回即时收费金额和新的订阅详情,而不进行任何实际更改。
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
const response = await client.subscriptions.previewChangePlan('subscription_id', {
product_id: 'product_id',
proration_billing_mode: 'prorated_immediately',
quantity: 0,
});
console.log(response.immediate_charge);{
"immediate_charge": {
"line_items": [
{
"currency": "AED",
"id": "<string>",
"product_id": "<string>",
"proration_factor": 123,
"quantity": 123,
"tax_inclusive": true,
"type": "subscription",
"unit_price": 123,
"description": "<string>",
"name": "<string>",
"tax": 123,
"tax_rate": 123
}
],
"summary": {
"currency": "AED",
"customer_credits": 123,
"settlement_amount": 123,
"settlement_currency": "AED",
"total_amount": 123,
"settlement_tax": 123,
"tax": 123
}
},
"new_plan": {
"addons": [
{
"addon_id": "<string>",
"quantity": 123
}
],
"billing": {
"country": "AF",
"city": "<string>",
"state": "<string>",
"street": "<string>",
"zipcode": "<string>"
},
"cancel_at_next_billing_date": true,
"created_at": "2023-11-07T05:31:56Z",
"currency": "AED",
"customer": {
"customer_id": "<string>",
"email": "<string>",
"name": "<string>",
"metadata": {},
"phone_number": "<string>"
},
"metadata": {},
"meters": [
{
"currency": "AED",
"free_threshold": 123,
"measurement_unit": "<string>",
"meter_id": "<string>",
"name": "<string>",
"price_per_unit": "10.50",
"description": "<string>"
}
],
"next_billing_date": "2023-11-07T05:31:56Z",
"on_demand": true,
"payment_frequency_count": 123,
"payment_frequency_interval": "Day",
"previous_billing_date": "2023-11-07T05:31:56Z",
"product_id": "<string>",
"quantity": 123,
"recurring_pre_tax_amount": 123,
"status": "pending",
"subscription_id": "<string>",
"subscription_period_count": 123,
"subscription_period_interval": "Day",
"tax_inclusive": true,
"trial_period_days": 123,
"cancelled_at": "2023-11-07T05:31:56Z",
"discount_cycles_remaining": 123,
"discount_id": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"payment_method_id": "<string>",
"tax_id": "<string>"
}
}| 字段 | 描述 |
|---|---|
immediate_charge | 将立即产生的费用,包括明细和摘要 |
new_plan | 显示计划变更后订阅对象的完整信息 |
immediate_charge.summary 包含将收取的总金额。使用此信息在客户确认计划变更之前向他们展示定价。Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Subscription Id
Unique identifier of the product to subscribe to
Proration Billing Mode
prorated_immediately, full_immediately, difference_immediately Number of units to subscribe for. Must be at least 1.
x >= 0Addons for the new plan. Note : Leaving this empty would remove any existing addons
显示 子属性
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
const response = await client.subscriptions.previewChangePlan('subscription_id', {
product_id: 'product_id',
proration_billing_mode: 'prorated_immediately',
quantity: 0,
});
console.log(response.immediate_charge);{
"immediate_charge": {
"line_items": [
{
"currency": "AED",
"id": "<string>",
"product_id": "<string>",
"proration_factor": 123,
"quantity": 123,
"tax_inclusive": true,
"type": "subscription",
"unit_price": 123,
"description": "<string>",
"name": "<string>",
"tax": 123,
"tax_rate": 123
}
],
"summary": {
"currency": "AED",
"customer_credits": 123,
"settlement_amount": 123,
"settlement_currency": "AED",
"total_amount": 123,
"settlement_tax": 123,
"tax": 123
}
},
"new_plan": {
"addons": [
{
"addon_id": "<string>",
"quantity": 123
}
],
"billing": {
"country": "AF",
"city": "<string>",
"state": "<string>",
"street": "<string>",
"zipcode": "<string>"
},
"cancel_at_next_billing_date": true,
"created_at": "2023-11-07T05:31:56Z",
"currency": "AED",
"customer": {
"customer_id": "<string>",
"email": "<string>",
"name": "<string>",
"metadata": {},
"phone_number": "<string>"
},
"metadata": {},
"meters": [
{
"currency": "AED",
"free_threshold": 123,
"measurement_unit": "<string>",
"meter_id": "<string>",
"name": "<string>",
"price_per_unit": "10.50",
"description": "<string>"
}
],
"next_billing_date": "2023-11-07T05:31:56Z",
"on_demand": true,
"payment_frequency_count": 123,
"payment_frequency_interval": "Day",
"previous_billing_date": "2023-11-07T05:31:56Z",
"product_id": "<string>",
"quantity": 123,
"recurring_pre_tax_amount": 123,
"status": "pending",
"subscription_id": "<string>",
"subscription_period_count": 123,
"subscription_period_interval": "Day",
"tax_inclusive": true,
"trial_period_days": 123,
"cancelled_at": "2023-11-07T05:31:56Z",
"discount_cycles_remaining": 123,
"discount_id": "<string>",
"expires_at": "2023-11-07T05:31:56Z",
"payment_method_id": "<string>",
"tax_id": "<string>"
}
}