質問

私はこれに似た別の質問があることを知っていますが、私はそれが非常によく尋ねられたとは思わないとは思わない。

基本的に私はユーザーが購読にサインアップできる作業用Railsアプリを持っています、クレジットカード情報などを入力してください。しかし、私はこの繰り返し購読の間にユーザーのカードがある時点でユーザーのカードが拒否された状況を処理する必要があります。

送信されたイベントの種類はここにあります。 https://tripe.com/docs/ API?lang= ruby#event_types

私は私のアプリでQailedオブジェクトにアクセスするのに問題があります。

Webhookのドキュメントもここにあります。 https://tripe.com/docs/webhooks 、そしてあらゆる助けが大いに理解されるでしょう。

役に立ちましたか?

解決

基本的に要求を受け入れて処理するためのコントローラを作成する必要があります。最初にあなたの心を包むのにまっすぐなことではありませんが、それはかなり簡単です。これが私のhooks_controller.rbの例です:

class HooksController < ApplicationController
  require 'json'

  Stripe.api_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  def receiver

    data_json = JSON.parse request.body.read

    p data_json['data']['object']['customer']

    if data_json[:type] == "invoice.payment_succeeded"
      make_active(data_event)
    end

    if data_json[:type] == "invoice.payment_failed"
      make_inactive(data_event)
    end
  end

  def make_active(data_event)
    @profile = Profile.find(User.find_by_stripe_customer_token(data['data']['object']['customer']).profile)
    if @profile.payment_received == false
      @profile.payment_received = true
      @profile.save!
    end
  end

  def make_inactive(data_event)
    @profile = Profile.find(User.find_by_stripe_customer_token(data['data']['object']['customer']).profile)
    if @profile.payment_received == true
      @profile.payment_received = false
      @profile.save!
    end
  end
end
.

DEF受信者は、WebHooksをストライプインタフェースに指す必要があるビューです。このビューはJSONを受信し、支払いが失敗した、または成功した場合にユーザーのプロファイルを更新するために使用しています。

他のヒント

stripe_event GEMを使用するのははるかに簡単です。

> https://github.com/integrallis/stripe_event

これは理想的なテストの状況よりも少ないです...

ストライプはテスト目的でウェブフックを「強制的に」する方法を必要とします。現在、あなたがすることができる最短の購読は1週間(テストモード)です。1分、1時間、または単にリアルタイムでコールバックが発生するためにそれを設定できる場合は、はるかに役立ちますので、APIレスポンスシステムをテストできます。

現地のテストは素晴らしいですが、インターネット上のライブ、Webhooks /コールバックを介して、Real-World、Liveに代わるものは何もありません。週に待たなければならない(!)プロジェクトを真剣に遅くする。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top