Webhook統合とストライプ支払い意図



Webhook統合とストライプ支払い意図

お客様のアプリケーションでお支払いプロバイダのストライプ、RazorPay、DWollaなどを統合するときにWebhooksについて聞いたことがあります.私は柵アプリケーションの1つに取り組んでいました、そして、それでストライプ支払いを統合しなければなりませんでした.それで、私はWebhookについて読みました.
このブログでは、次のようなものをカバーします.
  • Webhookは何ですか?
  • ストライプの支払い意図による
  • Webhook統合.

  • 1 . Webhookとは
    WebhookはHTTPコールバックです:何かが起こるとき起こるHTTP柱.すべてのAPIで、応答が続くリクエストがあります.Webhookのためにさえ、要求は支払いプロバイダーによってなされます.ここでの違いは、クライアント側のブラウザではなく、別のサーバがリクエストを開始することです.

    2 .ストライプ支払い意図によるWebhook統合
    Webhookを使用するには、支払いゲートウェイでURLを登録する必要があります.このURLは、データを受け取り、処理するアプリケーション内の場所です.あなたの支払いアプリケーションへのどんな変更もEGが起こるときはいつでも、顧客はTransferを作成して、新しい銀行口座を加えて、資金を回収して、支払いプロバイダーはあなたのサーバーに存在するこのWebhook終点を使ってあなたのアプリケーションサーバに通知します.それは一般的に支払いのプロバイダによって、このエンドポイントに送信されたすべての要求を記録し、アプリケーションの利益のトピックのみを処理するために良い練習をすることができます.
    私の場合、私はStripe payment Intent APIを使用して、それのためにwebhookを集積しました.
    以下の手順を示します.
  • Webhookと呼ばれるモデルを作成し、要件に基づいて属性を追加します.
  • WebHookHorseコントローラと呼ばれるコントローラを作成します.RB
  • Createというアクションを書きます.
  • 設定/ルートのルートを追加します.rbファイル
  • resources :webhooks, only :create
    
    移行は次のようになります.
    class CreateWebhooks < ActiveRecord::Migration[6.0]
      def change
        create_table :webhooks do |t|
          t.json :event
          t.string :event_type
          t.timestamps
        end
      end
    end
    
    WebHookHorseコントローラ内に次のコードを貼り付けます.RB
      def create
          payload = request.body.read
          begin
            event = Stripe::Webhook.construct_event(
              payload, signature_header, endpoint_secret
            )
          rescue JSON::ParserError => e
            # Invalid payload
            render json: {success: false, message: "Invalid payload"}, status: 400 and return
          rescue Stripe::SignatureVerificationError => e
            # Invalid signature
            render json: {success: false, message: "Invalid signature"}, status: 400 and return
          end
    
    json_data = JSON.parse(event.to_json)
          stripe_webhook = Webhook.create!(event: json_data, event_type: json_data["type"])
          render json: {success: true, message: "successfully stored"}, status: :ok
      end
    
      private
    
      def signature_header
         request.env['HTTP_STRIPE_SIGNATURE']
      end
    
      def endpoint_secret
         Rails.application.credentials.stripe.dig(:webhook_endpoint_secret)
      end
    
    あなたはストライプダッシュボードにEndpointCone秘密を見つけるでしょう.まず、ダッシュボードにログインし、テストモードをクリックして、開発者に行きます.クリックして明らかにする.
    endpoint secret image
    あなたの終点をストライプダッシュボードに加えてください.あなたのURLがhttps://mydomain.com/webhooksであると仮定し、データを受信するイベントを選択します.下の画像を見ることができます.


    すべてを設定した後、テストWebhookを送信することができますし、それが完全に働いているかどうかあなたのエンドポイントをテストします.

    結論
    そして、それ!この仕事はあなたのためですか?以下の質問やコメントを残してください!
    読んでくれてありがとう!
    あなたがこの記事役に立つとわかるならば❤️ ❤️
    参考文献
    stripe payment intent docs .
    stripe webhook
    stripe payment intent webhook .
    types of event in stripe API