通过 API 和 redirect_flow 进行的 GoCardless 订阅流程

问题描述

我使用 redirect_flow 方法通过 API 成功创建了客户和订阅

  1. 据我所知,使用此流程没有支付/设置付款
  2. 如果我不添加开始日期,它会显示 DD 在下一个可用日期开始,而不是在 DD 设置时开始(即下一年作为年度 DD)。

我在 API 中找不到成功设置此流程所需的实际流程。 这是我发送/设置的订阅

            jData = ""
            jData = jData & "{"
            jData = jData & " ""subscriptions"": {"
            jData = jData & " ""amount"": 25.00,"
            jData = jData & " ""currency"": ""GBP"","
            jData = jData & " ""name"": ""Yearly Subscription"","
            jData = jData & " ""start_date"": ""2021-01-27"","
            jData = jData & " ""interval"": 1,"
            jData = jData & " ""interval_unit"": ""yearly"","
            jData = jData & " ""month"": ""january"","
            jData = jData & " ""day_of_month"": 20,"
            jData = jData & " ""Metadata"": {"
            jData = jData & " ""account_id"": ""acc1234"""
            jData = jData & " },"
            jData = jData & " ""links"": {"
            jData = jData & " ""mandate"": ""theirmadateid"""
            jData = jData & " }"
            jData = jData & " }"
            jData = jData & "}"

我希望开始日期是第一笔付款。 我需要在这个过程中设置第一笔付款,然后 DD 会在 2022 年进行下一笔付款吗?

所以过程是:

  1. 设置客户
  2. 为 DD 设置第一笔付款
  3. 设置 DD

  1. 设置客户
  2. 设置 DD
  3. 为该 DD 设置第一笔付款

这些是 GoCardless 控制面板中关于订阅的 JSON 详细信息:

{
  "id": "AD12345","created_at": "2021-01-20T09:48:01.443Z","amount": 2500,"currency": "GBP","status": "active","name": "Subscription of 25.00 GBP - Once per Year via Direct Debit","start_date": "2021-01-27","end_date": null,"interval": 1,"interval_unit": "yearly","day_of_month": 20,"month": "january","count": null,"Metadata": {
    "account_id": "1234"
  },"payment_reference": null,"upcoming_payments": [
    {
      "charge_date": "2022-01-20","amount": 2500
    },{
      "charge_date": "2023-01-20",{
      "charge_date": "2024-01-22",{
      "charge_date": "2025-01-20",{
      "charge_date": "2026-01-20",{
      "charge_date": "2027-01-20",{
      "charge_date": "2028-01-20",{
      "charge_date": "2029-01-22",{
      "charge_date": "2030-01-21",{
      "charge_date": "2031-01-20","amount": 2500
    }
  ],"app_fee": null,"links": {
    "mandate": "MD00001"
  },"retry_if_possible": false,"earliest_charge_date_after_resume": null,"app_name": null,"amount_can_be_updated": true,"fx": {
    "fx_currency": null,"fx_amount": null,"exchange_rate": null,"estimated_exchange_rate": null
  }
}

如您所见,它要到 2022 年才会开始付款。

任何帮助表示赞赏?

解决方法

您已设置 "day_of_month":20"month":"january" 在此实例中已通过,因此下一个 1 月 20 日是 2022 年。

您可以从请求中删除它并只使用 start_date 字段,然后它将在未来付款的开始日期或前后。

或者,如果您想为未来的交易日期设置不同的开始日期,那么您需要进行创建->付款调用,然后创建->订阅以在 2022 年开始。

,

正如 srob 所说,你不能在同一天开始 DD,所以我所做的只是说明 DD 的日期是未来 7 天开始,一切都奏效了。