对于每种产品,我们执行以下操作:
POST /v1/catalogs/products
product_id
,创建一个新计划 POST /v1/billing/plans
plan_id
和 POST /v1/billing/subscriptions
问题:创建订阅时,我们可以通过将
plan
对象传递到 POST /v1/billing/subscriptions
端点来覆盖计划金额,从而更改向客户计费的价格。然而,传递不同的货币会引发错误:
"The currency code is different from the plan's currency code."
话虽如此,有没有一种方法可以设置贝宝订阅,让我们可以传递不同的货币?是否需要为每种货币创建一个新计划,因为这似乎不是一个好的解决方案
我们创建一个包含以下正文的计费计划:
{
product_id: productId,
name: planName,
status: 'ACTIVE',
billing_cycles: [
{
frequency: {
interval_unit: 'MONTH',
interval_count: 1
},
tenure_type: 'REGULAR',
sequence: 1,
// Create a temporary pricing_scheme. This will be replaced
// with a variable amount when a subscription is created.
pricing_scheme: {
fixed_price: {
value: '1',
currency_code: 'CAD'
}
},
total_cycles: 0
}
],
payment_preferences: {
auto_bill_outstanding: true,
payment_failure_threshold: 2
}
}
我们使用以下正文创建订阅(但是传递与计划 (CAD) 不同的货币会引发错误):
{
plan_id: planId,
subscriber: {
email_address: email
},
plan: {
billing_cycles: [
{
sequence: 1,
pricing_scheme: {
fixed_price: {
value: amount,
currency_code: currency
}
}
}
]
},
custom_id: productId
};
是否需要为每种货币创建一个新计划
是的
如果你不能覆盖货币,那么文档在这方面就很糟糕。 https://developer.paypal.com/docs/api/subscriptions/v1/#definition-plan_override
这在很大程度上意味着您可以覆盖列出的包含货币的值。你实际上可以覆盖什么?