使用节点递归创建带有插件的订阅

Create subscription with addon using node-recurly

使用 node-recurly,我可以创建订阅对象并将其传递给 recurly.subscriptions.create 调用:

const subscription = {
      plan_code: plan.code,
      currency: 'USD',
      account: {
        account_code: activationCode,
        first_name: billingInfo.first_name,
        last_name: billingInfo.last_name,
        email: billingInfo.email,
        billing_info: {
          token_id: paymentToken,
        },
      },
    };

我还想添加 subscription_add_ons 属性,从 the documentation 来看,它应该是一组附加组件。我试过这样传递它:

subscription_add_ons: [
        {
            add_on_code: shippingMethod.servicelevel_token,
            unit_amount_in_cents: parseFloat(shippingMethod.amount) * 100,
        },
      ],

服务器返回错误:

Tag <subscription_add_ons> must consist only of sub-tags named <subscription_add_on>

我试过这个:

subscription_add_ons: [
        {
          subscription_add_on: {
            add_on_code: shippingMethod.servicelevel_token,
            unit_amount_in_cents: parseFloat(shippingMethod.amount) * 100,
          },
        },
      ],

返回此错误:

在这种情况下传递订阅附加组件的正确格式是什么?

正确的格式是:

subscription_add_ons: {
        subscription_add_on: [{
          add_on_code: shippingMethod.servicelevel_token,
          unit_amount_in_cents: parseFloat(shippingMethod.amount) * 100,
        }],
      },

我最终这样做了,无论您有 1 个附加组件还是多个附加组件,它都有效。 subscription_add_ons 是一个数组,可以包含 1 个或多个订阅插件。然后我在订阅更新电话中发送详细信息(连同其他信息)。这与您在原始 post 中尝试的类似,所以我不确定为什么它对您不起作用。

details.subscription_add_ons = [
    { subscription_add_on: {add_on_code: "stream", quantity: 3} },
    { subscription_add_on: {add_on_code: "hold", quantity: 2} }
];