RailsとActiveMerchantを使用した定期的な請求:ベストプラクティス、落とし穴、落とし穴?

StackOverflow https://stackoverflow.com/questions/471936

質問

過去1年間開発中の大規模なWebアプリケーションのリリースを準備しています。 ActiveMerchantを統合して、サービスの定期的なサブスクリプション料金を処理するプロセスを開始しようとしています。

要件(下記)を考慮したベストプラクティスに関するアドバイス、および一般的な落とし穴または特別な考慮が必要な特定の問題に対する追加のヘッズアップを探しています。使用する支払いゲートウェイは、 PaymentExpress です。これは、定期的な請求があり、サポートされていない数少ないゲートウェイの1つです。米国以外で事業を展開する企業にとって特別な条件はありません。このアプリケーションの背後にあるビジネスは英国を拠点としています。

アプリケーションのユーザーは、アプリケーションとそのデータにアクセスしてカスタマイズできるサブドメインを持つアカウントを作成します。以下は、課金の仕組みに影響を与える可能性のある要件/機能の一部です。

  • すべてのユーザーが30日間のトライアルを取得
  • 無料のプランなど、さまざまなプランがあります
  • 価格の高いプランでは、アカウントに保持できるデータ量(ユーザー、プロジェクトなど)の制限が大きくなります
  • 請求期間は、試用後から毎月となります
  • 割引プラン/クーポンコードを使用して、プランなどで1年間の通常価格から割引を得ることができます。
  • 機能が追加されるとプランの価格が変更されます

私が予見できる特定のハードルは次のようなものになります:

  • 下位レベルのプランのプラン制限に違反した場合のダウングレードの処理方法。
  • クレジットカードの有効期限が切れるか、支払いが行われない場合の動作(おそらく読み取り専用モードが強制されます)
  • プランの価格が変更された場合、一定期間(6か月など)の間、既存のユーザーの以前の価格を尊重し、より高い料金の請求を開始します。プランの価格が下がると、すぐに有効になります。

役立つその他のアドバイスは、アプリケーションの流れに関するものです。請求フォームはどのようにユーザーに提示されるべきですか?クレジットカード情報はいつ必要ですか?請求書はどのように送信、保存、アクセスできる必要がありますか?

多くのコードベースを SaaSy に基づいて作成する予定であることを開示する必要があります。 。 SaaSyは、すべてのサインアップとアカウント管理の側面を処理する別個のRailsアプリとして使用するように設計されています。ただし、最初から計画していなかったため、これは機能しません。アプリケーションをそのように機能させるのは退屈なプロセスです。その結果、SaaSyからコードとアイデアを引き出してアプリにマージするので、面倒な作業は大幅に軽減されます。

役に立ちましたか?

解決

RailsKits には必要なことを行う必要のあるサービスキット。無料試用版、アップグレード、ダウングレード、プラン制限などの組み込みサポートがあり、PaymentExpress(およびその他のいくつか)をサポートしています。

現在行っているプロジェクトのために少し調査しましたが、まだ購入していないので、保証できません。ただし、このキットを称賛するブログ記事をいくつか見ました。

RailsKitは、すべての機能を自分で実装するのにかかる費用と比較すると比較的安価ですが、同じことを達成することを目的としたオープンソースバージョンがいくつかあります。頭の中で覚えているのは、フリーミアムです。

編集:ライアン・ベイツが最新のRailscastで言ったことを忘れました>彼の次のエピソードは、定期的な請求に対処するので、そのことに注意してください。彼は通常、1週間に1つのエピソードを行い、12月22日以降に行った5つのエピソードはすべて、異なるタイプの支払いの処理をカバーしています。

他のヒント

1つ追加したいことは、ゲートウェイに組み込まれている定期的な請求機能を使用する必要がないことに留意してください。一般に、これらのシステムはレガシーであり、対処が非常に困難です。私たちはレールの世界で台無しにされます。

1つの目的(クレジットカードへの請求、およびおそらくPCI準拠のためのクレジットカードの保管)にそれらを使用するだけで、はるかに柔軟になります。次に、cronジョブ、支払時期の日付フィールド、各人が支払う金額(クーポンを使用した場合)などを使用して、Railsアプリで独自の定期請求を行います。

1つの小さな例:場合によっては、月の半ばに毎月のサブスクリプションをキャンセルすることがあります。彼らは、次の支払いの前にキャンセルすることを忘れないことを確認したい。私が見たほとんどのゲートウェイの定期的な請求は、即座にアカウントを終了します(または、これを示すメッセージを送信します)。実際には、ユーザーは月末までに支払いを済ませており、さらに2週間のアクセスを許可する必要があります。レールで独自の定期請求を行っている場合はこれを行うことができますが、ゲートウェイの定期請求を使用している場合はできません。ほんの小さな例です。

また、サブスクリプションベースのWebサイトをセットアップしていますが、これが現在の要件です。彼らはベストプラクティスに関してあなたを助けるかもしれません:

  • ユーザーは次のいずれかを選択できます サブスクリプションプラン。
  • ユーザーは入力する必要があります サインアップするクレジットカードの詳細 彼らが選んだ計画。
  • すべての主要なクレジットカードとデビットカードは マエストロを含む受け入れられ、 American Express。
  • 各プランには30日間の無料期間があります ユーザーのクレジットカードは 30日後にのみ請求されます 期限が切れます。ただし、有効性 クレジットカードの サインアップの時間。
  • ユーザーには数日以内にメールが送信されます クレジットカードに請求される前 彼らがすることを彼らに通知する キャンセルしない限り、すぐに請求されます アカウント。アカウントをキャンセルした場合 30日間の無料トライアル内で、 クレジットカードに請求しないでください。
  • 無料試用期間後、ユーザーは 彼らのために事前に請求されます システムの使用-すなわち、彼らは 前払い。
  • ユーザーに自動的に課金されます 選ばれた計画のために毎月。 毎月、ユーザーに送信されます 数日前にメールで通知する 彼らが請求されます。一度 支払いが行われ、ユーザーは そのことを示す請求書をメールで送った 支払いが受領されました。
  • ユーザーはアップグレードするか、 アカウントはいつでもダウングレードできます。 ユーザーがアップグレード/ダウングレードすると、 次の購読料は 新しいレート。ユーザーのみが可能になります アカウントをプランにダウングレードするには データを処理できます。にとって たとえば、現在10人いる場合 ダウングレードできないアクティブなプロジェクト 基本計画のために 計画では5つのプロジェクトのみが許可されます。彼ら 5を削除またはアーカイブする必要があります あなたができる前のプロジェクト Basicにダウングレードします。
  • ユーザーはログインできます アカウントおよび変更または更新 クレジットカードの詳細。
  • ユーザーは、キャンセルすることができます いつでもアカウント。何もないだろう その後の追加の購読料 ユーザーがアカウントをキャンセルしました。 ただし、ユーザーには返金されません 彼らが持っている月の一部 既に支払い済みです。
  • 支払いシステムのすべての部分は 100%PCI DSSに準拠している。含む サードパーティのシステム。
  • 支払いシステムがサポートする必要があります 自動通知と再試行 サブスクリプションの更新に失敗しました。
  • 支払いシステムがサポートする必要があります 有効期限付きの割引券。
  • クレジットカードの詳細は サーバーによって処理または保存されます
  • これらは常にサードパーティによって処理/保存される必要があります 支払い処理パートナー。私たちはしない 確保する責任を望む これらの詳細および準拠 法的規則と規制。
  • ユーザーはログインできます アカウントと完全な請求書を参照してください 日付と金額を含む履歴 支払った。また、する必要があります システムにログインして確認できる 顧客の支払い計画と支払い 歴史。これは カスタマーサービス。

また、 http://chargify.com/ を見てきました。多くのコーディング時間。

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