由于这个问题没有语言标签,我将使用 PHP。
如果您的客户更改订阅,您需要做的就是将他在 Braintree 中的当前订阅更新为新计划,并在通话中设置该计划的新价格。
基本上,Braintree 中的计划只是模板(如 pblesi 所说)。您可以覆盖任何您想要的值。理论上,您可以在 Braintree 中创建一个名为 tiny 的 1 美元/月计划,但在您的代码中以 500 美元/月的订阅价格为用户订阅 tiny 计划。
我认为(从这里开始猜测)Braintree 只是提供了这个系统,因此人们可以在不更新任何代码的情况下将计划添加到他们的应用程序/网站,因为您可以查询您帐户上所有现有的 Braintree 计划并使用其内容填充您的 GUI .如果您实施这样的事情,您可以稍后添加计划,它们将自动出现在您的网站/应用程序上。另一方面,您可以在他们的网站上编辑现有计划的价格,这只会影响新订阅者,因为老客户会继续支付旧价格。
现在是 PHP 代码:
首先我创建一个订阅:
Braintree_Subscription::create([
'paymentMethodToken' => $paymentMethodToken,
'planId' => $planId,
'price' => $price
]);
价格只是一个数字,货币取决于您的帐户配置
假设我的用户在网站上更改了他的订阅,我可以按如下方式更新他的订阅:
Braintree_Subscription::update($subscriptionId,[
'planId' => $planId,
'price' => $price
]);
$subscriptionId 是您在他/她第一次注册时创建的订阅的 ID(例如与用户信息一起存储在您的数据库中的某个位置),$planId 是新计划,$price 是新计划的价格。
我自己刚刚实现了对 Braintree 的支持,确实,用户手册并不总是很清楚,但是一旦你知道它是如何工作的,它实际上是一个非常容易使用的系统。就此而言,这比 PayPal 定期计费要容易得多。