URL-адрес подтверждения для Shopify RecurringApplicationCharge равен нулю

#ruby-on-rails #recurring-billing #shopify-api

#ruby-on-rails #повторяющийся-выставление счетов #shopify-api

Вопрос:

Я пытаюсь добавить повторяющуюся плату в мое приложение shopify. Я следовал Shopify-Tutorial, но написал его немного иначе. Мой корневой маршрут идет к:

 root 'mycontroller#charging'
  

действие контроллера:

   def charging
    if @shop_domain != @myshop
      @shop_charging_status = @shop.charging
      unless ShopifyAPI::RecurringApplicationCharge.current
        recurring_charge = ShopifyAPI::RecurringApplicationCharge.new(
          name: "My App",
          price: "1.99",
          return_url: "https://appurl/activated",
          trial_days: 7,
          terms: "$1.99 per month")

          if recurring_charge.save
            @tokens[:confirmation_url] = recurring_charge.confirmation_url
            @shop_charging_status = true
            @shop.save
            redirect recurring_charge.confirmation_url
          end
      end
    else
      redirect_to myindex_path
    end
  

Когда я пытаюсь запустить приложение, я получаю сообщение об ошибке: NoMethodError (неопределенный метод `[]=’ для nil:NilClass). Это касается строки @token . Эта строка уже смущала меня, когда я писал код, потому что переменная @token используется только в этом методе. Но, тем не менее, почему это nil?

Чего мне не хватает?

Ответ №1:

Когда я пытаюсь запустить приложение, я получаю сообщение об ошибке: NoMethodError (неопределенный метод `[]=’ для nil:NilClass). Это касается строки @token .

Я полагаю, вы имеете в виду @tokens ?

Я думаю, вам не хватает первой части руководства здесь, в которой они устанавливают @tokens = {} метод инициализации, а затем сохраняют токены доступа для каждого магазина там.

Комментарии:

1. Вы правы. У меня есть драгоценный камень shopify-app, поэтому в нем нет необходимости. Я исправил это, просто удалив [:confirmation_url] и поместив fullpage_redirect_to @token . Теперь это работает