shimabukuromeg / sample-lighthouse

0 stars 0 forks source link

Stripeでポイントを購入するサンプルコードを書いてみる #5

Open shimabukuromeg opened 3 years ago

shimabukuromeg commented 3 years ago

参考記事

決済システムの残高管理周りの DB 設計と戦略 - カンムテックブログ

shimabukuromeg commented 3 years ago

処理の流れメモ書き

iOS の画像

shimabukuromeg commented 3 years ago

一覧取得する場合は all ディレクティブ

https://lighthouse-php.com/master/api-reference/directives.html#all

もしくはページネーション

https://lighthouse-php.com/master/api-reference/directives.html#paginate

shimabukuromeg commented 3 years ago

ポイント一覧のクエリ

query {
  points {
      id
      price
      point
  }
}

レスポンス

{
  "data": {
    "points": [
      {
        "id": "1",
        "price": 1000,
        "point": 1000
      },
      {
        "id": "2",
        "price": 2000,
        "point": 2000
      },
      {
        "id": "3",
        "price": 3000,
        "point": 3000
      },
      {
        "id": "4",
        "price": 4000,
        "point": 4000
      }
    ]
  }
}
shimabukuromeg commented 3 years ago

参考

「Laravel + Vue.jsではじめる 実践 GraphQL入門」の全貌を大公開します!〜GraphQL + Laravelでバックエンドを開発!(ログイン機能・ツイート機能)編〜|kzkohashi|note

shimabukuromeg commented 3 years ago

リゾルバを作る時のコマンド

$ docker-compose exec app php artisan lighthouse:mutation PaymentCheckoutSessionStartResolver
shimabukuromeg commented 3 years ago

Stripeの決済を開始する時のリクエストを投げるミューテーション

mutation {
  paymentCheckoutSessionStart(
    input: {
      point_id: 1
    }
  ) {
    stripe_session_id
  }
}

レスポンス

{
  "data": {
    "paymentCheckoutSessionStart": {
      "stripe_session_id": "123456789101112"
    }
  }
}
shimabukuromeg commented 3 years ago

stripe/stripe-php を導入する

$ docker-compose exec app composer require stripe/stripe-php
shimabukuromeg commented 3 years ago

Stripe の Session 開始するリクエストの投げ方はわかったから 残りは Webhook で決済の処理が完了したことを受け取る処理の書き方わかれば良さそう