Codex · III

サブスクリプション

サブスクリプション

Coin Moebius は、あなたのメニューのすべての法定通貨プロバイダーで継続的なサブスクリプションを販売できます。加盟店は価格と間隔を商品で一度設定するだけで、サイトの買うボタンはまったく同じままです。支払いプロバイダーが継続的な請求を実行し、カードを保持し、失敗した更新を再試行し、解約ページをホストします。Coin Moebius はライフサイクルのイベントをあなたのコードへ中継します。

継続的な商品を設定する

ダッシュボードの 商品 タブで、請求 フィールドを One-time ではなく Monthly または Annual に設定します。最初の請求の前に付与したい試用日数のための、任意の 無料試用 フィールドが表示されます。商品を保存します。

買うボタンの HTML は変わりません。同じ product-id="pro-plan" 属性が一回払いでも継続でも機能します。worker はチェックアウト時に商品の請求設定を確認し、該当する場合はプロバイダーのサブスクリプション API を通します。

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  label="Subscribe to Pro">
</coin-moebius-buy>

あなたが作らなくてよいもの

スケジュールはプロバイダーが実行します。当社はカードを保存しません。cron ジョブを動かしません。失敗した請求を再試行しません。督促メールを送りません。解約ページをホストしません。システムのそちら側全体は、Stripe(またはあなたが接続したどの法定通貨プロバイダー)の中に存在します。あなたは、継続的な請求の難しい部分を、すでに何百万もの加盟店のためにそれを実行している会社に外注しているのです。

サブスクリプションのイベント

更新と解約は、あなたのサーバーが反応できる webhook イベントとして現れます。5つの正規化された型がライフサイクルをカバーします。

イベント発火するとき
subscription.created新規登録。最初のサイクルの金額を運びます。
subscription.renewed初回以外のサイクルが成功。新しい期間末までアクセスを延長します。
subscription.payment_failedあるサイクルのカードが拒否された。プロバイダーの督促がそのスケジュールで再試行します。通常、可視化のためにこれを記録するだけです。
subscription.canceled最終的な解約。購入者が解約した、督促が尽きた、または加盟店が解約した。
subscription.updatedステータス変更、カード更新、プラン変更。新しいステータスを確認します。

保存せずに購入者を識別する

Coin Moebius は支払いのルーターであって、顧客データベースではありません。当社は購入者のメール、氏名、住所、プロバイダーの内部顧客IDを決して保存しません。アプリにユーザーアカウントがあるなら(ほとんどのサブスクリプションアプリにはあります)、ご自身の不透明なユーザーIDを買うボタンの customer-ref として渡してください。ボタンはそれを metadata.customerRef として worker に転送し、当社はそれをプロバイダーへ通し、すべてのイベントで返し、その不透明な文字列だけを保存します。当社にとっては無意味で、あなたにとっては自分のユーザーシステムへの外部キーです。

<coin-moebius-buy
  project-id="proj_YOUR_ID"
  product-id="pro-plan"
  customer-ref="user_bob_42">
</coin-moebius-buy>

より深い購入者の詳細(メール、カード下4桁、係争のメモ)が必要なときは、ダッシュボードが各カード取引を、処理したプロバイダー(Stripe、PayPal、Square、Authorize.Net)へリンクします。購入者のレコードは実際そこにあります。あなたがクリックして遷移し、当社はそれを複製しません。

解約:リンクするだけ、作らない

購入者はプロバイダーのホスト型ポータルで解約します。Stripe Customer Portal、購入者の PayPal アカウントページなど。ポータルは解約、カード更新、領収のダウンロード、プラン変更を扱います。すべて、あなたが作らなくてよい UI です。1回の API 呼び出しで購入者をポータルへ送れます。

const res = await fetch(
  `https://api.coinmoebius.com/api/subscriptions/${projectId}/${subId}/portal-url`,
  { method: 'POST', body: JSON.stringify({ returnUrl: 'https://you.example/account' }) },
);
const { url } = await res.json();
window.location.assign(url);

現在どのプロバイダーがサブスクリプションに対応するか

Stripe と PayPal は、ホスト型の買うボタンを通して端から端まで機能します。ダッシュボードで商品を Monthly または Annual に設定し、ボタンをページに貼れば、クリックで本物のサブスクリプションが始まります。更新はプロバイダーが実行します。

Square と Authorize.Net のサブスクリプションは、ホスト型の買うボタンを通して動きません。プロバイダーとのご自身の統合を通してサブスクリプションを作り(Authorize.Net では Accept.js でご自身のページでカードを集めること、Square には使える独自のホスト型サブスクリプションチェックアウトがあります)、プロバイダーの webhook を当社に向けます。そこから残りの仕組み(webhook のルーティング、ダッシュボード、ステータスエンドポイント、顧客のリンク)は、Stripe や PayPal のサブスクリプションとまったく同じように機能します。次のセクションを参照してください。

暗号資産のプロバイダー(NOWPayments)は、本製品では継続的な請求に対応しません。継続的な暗号資産は、当社が評価したどのゲートウェイでも摩擦が多く、半端に壊れたものを出すくらいなら何も出さない方を選びます。

つなぐ準備はできましたか?

無料プランはほとんどのサイトをカバーし、カードを一切求めません。