これまでは有料会員制サイトなどの定期的な課金方法としては、ネットショップ管理プラグインのイプシロン決済モジュールしか選択肢がありませんでしたが、ペイパル(PayPal)決済モジュールが購読・定期支払いに対応したことにより、課金手段の選択肢の幅が広がりました。
今回はPayPalの購読・定期支払いを利用した有料課金システムを構築する手順をみていきたいと思います。ここでは会員制サービスで会費を30日ごとに徴収する手段として、PayPalの購読・定期支払いを設定してみます。
PayPalの購読・定期支払いの設定を行う前に、まずはイプシロン決済モジュールとペイパル(PayPal)決済モジュールの定期払いの特徴を見ておきましょう。
決済モジュールの定期課金の特徴
イプシロン決済モジュールとペイパル(PayPal)決済モジュールの定期的な課金のそれぞれの特徴は以下の通りです。
イプシロン決済モジュール
- 月次課金のみ利用可能(月末締め請求)
- 携帯電話でも支払いが可能
- 支払画面が分かりやすい
- イプシロン決済サービスに月次課金の申し込みが別途必要
ペイパル(PayPal)決済モジュール
- 日、週、月、年単位で自由に定期課金が可能
- 携帯電話での支払いはPayPal自体が未対応
- PayPalのアカウント登録が必要になる
- ペイパル(PayPal)アカウントの作成方法ですぐに始められる
ということで、PayPalの方が柔軟な設定ができる一方で、携帯電話には対応しておらず、PayPalのアカウント登録が必要なこともあり、定期的な課金をする場合は携帯電話の対応や支払画面の分かりやすさを考慮に入れて選択する必要があると思います。
WordPressやプラグインの環境
それでは、PayPalの定期課金の設定を行っていきましょう。まず、今回使用する環境は以下のとおりです。
- WordPress 3.0.1 (WordPress2.8以降で動作しますが、WordPress 3.0以上を推奨します)
- フロントエンドユーザー管理プラグイン
- ネットショップ管理プラグイン(1.4.2以降が必要です)
- ペイパル(PayPal)決済モジュール(1.0.2以降が必要です)
プラグインの基本的な設定は各プラグインのページをご参照ください。
定期課金の設定
まずは、商品登録で会費を登録します。ネットショップ管理プラグインの新規商品登録を開き、カテゴリー、商品コード、商品名、商品価格などを入力します。ここで設定された商品価格が定期課金される額となります。登録が完了すると商品IDが割り振られますので、それを覚えておきます。
商品登録が済んだら、ネットショップ管理プラグインのオプション設定を開き、決済モジュールオプションのペイパルを開きます。以下のような設定画面が出てくるので、まず商品IDに先ほど登録した商品IDを入力します。
定期払単位と定期払期間は、日:1-90、週:1-52、月:1-24、年:1-5 で指定できます。ここでは、30日ごとに課金することにすると、定期払単位に日を選択し、定期払期間で30を選択します。
続いて課金ごとにユーザー属性を更新するコードを設定します。コードは、支払いPHPコード、失敗PHPコード、キャンセルPHPコードがあり、課金ごとに実行されるのが支払いPHPコードで、資金不足などで課金が失敗した場合が失敗PHPコード、課金設定がキャンセルされた場合に実行されるのがキャンセルPHPコードとなります。
例えば、支払いPHPコードに会員の有効期限を埋め込むコードは以下のような感じです。30日ごとの課金なので、余裕をみて31日後の有効期限を設定するようにしています。
$user = new WP_User($user_id, ''); if ( !empty($user->membership_date) && strtotime($user->membership_date)>date_i18n('U') ) $date = strtotime($user->membership_date); else $date = date_i18n('U'); update_user_meta( $user_id, 'membership_date', date_i18n('Y-m-d', $date+(31*24*60*60)) );
課金が失敗したり、キャンセルした場合に実行するPHPコードも必要に応じて設定してください。今回の場合は、支払いPHPコードが実行されなくなると、会員の有効期限は延長されないため、失敗PHPコードやキャンセルPHPコードには何も入力しなくてもよいと思います。
なお、商品IDを入力すると新しい設定欄が表示されるので、定期課金の商品が複数ある場合でも問題ありません。また、PayPalのIPNの仕様上、設定したPHPコードが即座に反映されない場合があることを考慮しておいてください。
注文ステップの省略
ネットショップ管理プラグインでは、販売する商品に応じて注文者情報の入力や送り先情報の入力画面をスキップする機能があります。定期課金以外の商品がない場合は、オプション設定の環境設定で注文ステップを指定してください。
もし、定期課金の商品とは別にグッズ販売などされる場合は、オプション設定に注文ステップオプションというのがあるので、こちらで商品ごとの注文ステップを指定します。商品IDを指定して保存すると、新しい設定欄が表示されるので、いくつでも商品ごとの注文ステップを指定できます。
PayPalの決済には、確認画面にチェックを入れる必要があるので注意が必要です。
PayPalでの定期課金の停止方法
PayPalで設定された購読・定期支払いの設定はサイト側で自動に行うことはできず、ユーザーに直接PayPalで課金停止をしてもらう必要があります。マイページなどに以下のようなリンクを張ります。
<a href="https://www.paypal.com/jp/cgi-bin/webscr?cmd=_subscr-find&alias=(PayPalのアカウントメールアドレス)">PayPalにログインして課金を停止する</a>
上記のコードでログインすると、すぐにサイトで設定した取引が表示されるので「詳細」を押してもらいます。すると以下のような画面が出るので、さらに「もっと詳しく」をクリックしてもらいます。
購読の詳細が表示されるので、「キャンセル」を押すことで、定期課金を停止させることが可能です。
PayPalの購読・定期支払いを利用する場合は、この一連の流れをユーザーに解説しておいた方が親切かもしれません。
まとめ
PayPalの魅力はなんといっても手軽さです。PayPalのアカウントを取得すれば、すぐに定期課金の仕組みを構築することができます。支払画面などが若干わかりにくい点はありますが、パソコンユーザーを対象にした課金サイトを作る場合は魅力的なサービスではないでしょうか。
ネットショップ管理プラグインでは、今後も決済サービスの充実を図っていきたいと考えております。PayPalの決済サービスを含め、何かご不明な点がございましたらお気軽にお問い合わせいただければ、と思います。