先に正直に書きます
この術は、僕自身がまだやり切っていない術です。
手元にあるものは、これだけです。
JPYC決済の実装(Convex+テスト、200コミット)
README の見出しが「(仮設定)」
送信はモック(SDK_ENV=mock)
→ 本番の課金は、まだ1件も通っていない
SDK_ENV=mock の「モック」とは、本物の代わりに置いた偽物という意味です。支払いを送ったつもりになって、送った先では何も起きていない状態です。手元では成功して見えますが、お金は1円も動いていません。
この術の「動いたと言える状態」は課金が通ることです。僕はそこへ到達していません。
だからこの術は、いつもの実話ではなく、現在地と、そこまでで分かったことと、公式の手順で書きます。実績ができたら書き直します。
その代わり、実装して初めて分かったことは書けます。そこが一番役に立つと思うので、そこを厚くします。
AIプロンプト
この術の作業をAIへ任せるときは、これをそのまま貼ってください。
個人がゲームを有料で売るための下地を整えたい。売るものは「(ここへ1行で書く)」で、選んだ決済の道は「(プラットフォーム内課金/外部の決済サービス/投げ銭)」です。
次の3つを出してください。
1. 支払いで起きうる失敗の一覧(待ち・期限切れ・失敗・二重・途中離脱)と、それぞれで画面と記録がどうあるべきか
2. 受け取る口座・規約・購入者向けの表示について、自分が確認すべき項目の一覧(法律の内容は断定せず、どこの公式案内で確認するかを添える)
3. 上のうち、決済ボタンより先に終わらせるべきものの順番
2番で「断定せず、確認先を添える」と指定しているのが要点です。 法律や手数料をAIに答えさせると、古い内容が自信たっぷりに返ってきます。AIに出させるのは一覧、決めるのは公式の案内です。
なぜ要るか
8-1と8-2で、誰でも遊べるURLになりました。遊ばれ始めると、次に「お金を受け取れるか」を考えたくなります。
ここで多くの人が、決済をコードの問題だと思います。違います。
| 見えているもの | 実際に決めること |
|---|---|
| 支払いボタン | 誰と契約するか |
| 支払いの処理 | 失敗したとき誰が謝るか |
| 「購入ありがとう」画面 | 返金するかしないか |
決済は、コードより約款と責任の問題です。 約款とは、売る側と買う側の取り決めを文章にしたもの、つまり規約のことです。ボタンは最後に付きます。
使う道具: JPYC決済
個人が課金を付ける道は3つです
大きく3つに分かれます。選ぶ基準は手数料ではありません。
| 道 | 誰と契約するか | あなたがやること |
|---|---|---|
| プラットフォーム内課金 | プラットフォーム(審査あり) | 規約に合わせて作る |
| 外部の決済サービス | 決済会社(本人確認あり) | 表示・記録・問い合わせ対応 |
| 投げ銭・支援 | サービス(ゆるい) | ほぼ何もしない |
手数料率は書きません。 変わる数字なので、記事に書いた瞬間から嘘になります。必ず各サービスの現在の案内を見てください。
代わりに、変わらない差を書きます。
プラットフォーム内課金 審査に落ちると出せない。でも決済の面倒は向こうが持つ
外部の決済サービス 自由に作れる。でも表示と返金と記録は全部自分
投げ銭・支援 一番早く始められる。でも「売った」ことにはならない
最初の1本なら、3番目で足ります。 遊ばれてから、上へ上がればいいです。
「売れる形」の最小は、決済ボタンではありません
ここが一番の勘違いポイントです。ボタンを付けても売れる形にはなりません。
最小はこの3つです。
| 要るもの | 中身 |
|---|---|
| 受け取る口座 | 本人名義であること。ここが通らないと何も始まらない |
| 規約 | 何を売るか、いつ渡すか、返金するかしないか |
| 通信販売の表示 | 有料で売る側として名前と連絡先を出すこと |
3番目について。日本国内で継続して有料で売る場合、通信販売にあたる表示が必要とされています。 何をどこまで書くかは、消費者庁の案内が一次情報です。僕がここで項目を並べると古くなるので、並べません。選んだ決済サービスの案内と、消費者庁の案内を両方見てください。
そして順番です。
1. 受け取る口座
2. 規約
3. 表示
4. ← ここで初めて決済ボタン
逆からやると、ボタンだけ付いて売れない状態になります。
実装して分かったこと:本体より周辺が大きい
ここが、200コミット書いて分かったことです。モック送信の段階で、です。
手元の実装は、業務のかたまりが25個あります。かたまりというのは、「請求を出す」「受け取った記録を残す」のように扱う対象で分けたファイル群のことです。そのうち「支払い」そのものは1個だけです。
payments 支払いそのもの ← 1個
invoices 請求と、その期限
receipts 受け取った記録
paymentsTimeline 何が起きたかの履歴
orders / products 何を売っているか
subscriptions 継続の課金
auth / secure 誰なのか、鍵をどう守るか
(ほか十数個)
24対1です。 決済を付けるというのは、支払い処理を1個足す作業ではなく、記録と失敗処理を持った小さな業務システムを1個抱える判断でした。
具体的に、周辺で必ず出てきたものを挙げます。
| 周辺 | なぜ必要か |
|---|---|
| 失敗の状態 | 支払いは成功だけではない。待ち・期限切れ・失敗が全部ある |
| 二重に払われない仕組み | ボタンの二度押し、通信の再送で普通に起きる |
| 記録 | 「払った」「払われた」を後から示せないと、揉めたときに終わる |
1番目が特に効きました。 支払いの状態を数えたら、待ちと期限切れと失敗があって、成功だけを書いていたコードは、書き直しになりました。
どういう状態かを並べると、こうなります。待ちは、送ったが着金の確認が返ってきていない状態です。期限切れは、請求を出したのに一定時間払われなかった状態です。失敗は、支払いそのものが通らなかった状態です。このどれもが、画面に何を出すかと、記録に何を残すかを別々に決める必要があります。
だから、これは書けます。決済を付ける工数の見積りは、支払い処理ではなく、失敗と記録で決まります。
やってみる
何をいくらで売るのか、1行で書く
「三つの的」の追加ステージ5面を、300円で売るここが書けないなら、まだ決済の段階ではありません。 2-2の「面白さの1行」と同じで、1行で言えないものは売れません。
3つの道から1つ選ぶ
選ぶ基準はこれ1本にしてください。
返金の問い合わせが来たとき、誰が返信するか自分で返信する覚悟がなければ、外部の決済サービスは選ばないでください。
口座と規約と表示を、ボタンより先に用意する
上の順番のとおりです。3番まで終わってから4番へ行ってください。
選んだ道の公式の手順を、公式の案内で読む
ここはAIに要約させないでください。手順は変わるので、一次情報を自分で見ます。
ただし、読んだ内容の整理はAIに任せられます。 案内のページを貼って、自分がやることの一覧に直させてください。
テスト用の支払いを1回通す
ほとんどのサービスにテスト用の仕組みがあります。本番の鍵と本番の金額に触る前に、必ずここを通してください。
僕がいま止まっているのは、まさにここの手前です。モックで動く状態と、本番で通る状態は別物です。
失敗と二重を、わざと試す
・支払い画面で戻る ・ボタンを2回押す ・途中で通信を切るこの3つで壊れないかを見ます。 成功だけ確認して公開すると、最初の実売でここが出ます。
保存する
git add . git commit -m "決済の下地(口座・規約・表示)を用意した" git push
つまずきどころ
決済ボタンだけ先に付けてしまった
口座と規約と表示が無いと、払われても渡せません。 ボタンを外して、上の順番でやり直してください。
テストのまま本番だと思っていた
僕がいまこの状態です。 モック送信の設定と本番の設定は、環境変数1個で切り替わることが多いです。環境変数とは、コードの外側に置いて実行時に読み込ませる設定値のことです。コードを1行も変えずに動きが変わるので、切り替わっていることに気づけません。だから「どちらで動いているか」を画面から見えるようにしてください。 見えないと、通ったつもりで通っていません。
二重に払われた
ボタンの二度押しか、通信の再送です。支払いに1件ずつの目印を持たせて、同じ目印は1回しか処理しない形にします。目印は、支払いを始めた時点で作る重複しない文字列です。処理する側は、その目印を記録しておいて、すでにある目印が来たら何もせず前と同じ結果を返します。後付けは大変なので、最初から入れてください。
返金をどうするか決めていない
決めていない状態で1件目が来ると、その場の判断になります。「返金する/しない」をどちらでもいいので先に書いて、表示に出してください。 書いてあれば揉めません。
手数料の数字が、調べた記事と違う
その記事が古いです。手数料と条件は各サービスの現在の案内が正です。この記事にも数字を書いていないのは、そのためです。
実績ゼロのまま有料にした
これが一番多い失敗だと思っています。遊ばれていないものに値段を付けると、売れない理由が分かりません。 無料で遊ばれない → 有料でも遊ばれない、が先に分かります。
支払いの記録と個人情報を同じ場所に置いた
8-1で書いたとおり、秘密はコードに書きません。 支払い記録も同じで、置き場所と誰が見られるかを決めてから作ってください。
Windows の場合
作業はブラウザの管理画面と書類がほとんどなので、差はありません。テスト用の支払いも同じです。
次の一歩
値段を付ける前に、無料で1人に遊んでもらってください。
この講座の順番は、こうです。
8-5 初見の人が詰まらない状態にする
9章 遊ばれ方を数字で見る
↓
数字が出てから、値段を考える
逆にしないでください。 遊ばれていない状態の決済は、動く決済であっても、売れる決済ではありません。
そして僕自身も、この術はまだ途中です。課金が通ったら、この記事は実話に書き換えます。 そのときは、うまくいった話ではなく、どこで詰まったかを書きます。そこが一番効くからです!