決済用プラグインの制作~(1)制作前の確認

2019年11月18日

決済用プラグインの制作前の確認

さて以上で、WordPressの基本的なカスタマイズは、add_action(), add_filter()を利用して、WordPressの処理ステップの適切な段階で希望する処理を行わせることであると説明してきました。

これを応用して、決済用プラグインの制作をしてみたいと思います。最終的には汎用性のある形にしたいと思いますが、とりあえずはソフトバンクペイメントサービス(以下「SBペイメントサービス」と略)で上手く行くようにしてみたいと思います。

作業を進める前に、デベロッパーコンソール【ネット決済導入支援】|SBペイメントサービスでデベロッパー登録を済ませてください。

取りあえずは、API型用サンドボックスを利用して作業を進めていきます。

SBペイメントサービスのAPIの使い方の流れ
API型用サンドボックスのページを開くと、

こんな感じの画面になります。この画面では、

上半分のテーブルでは、こちらから送信する変数の設定
下半分のコマンド表示では、こちらから送信する変数や送信方法などのPHPコード

が表示されています。

SBペイメントサービス APIとのやり取りの仕方は、下半分のコマンドの部分を見てもらえればわかるかと思いますが、

1.事前に固定された値と、購入した商品に関する情報(金額を含む)、カードなどの情報をHTTP_Requestクラスを利用して送信し、
2.こちらに送り返されてきたレスポンスから購入できたかどうかを判定してこちらで購入後の一連の処理を行う

という手順となります。まずはこれを試してみましょう。

SBペイメントサービスに送信する項目

※「公開ページでデータ作成」と書いてあるもの以外は、Ajaxにデータを送った後でプログラム上で計算・作成します。

マーチャントID:9(5):固定:$merchant_id
サービスID:9(3):固定:$service_id
顧客ID:X(64):可変:$cust_code
購入ID:X(38):可変:$order_id
商品ID:X(32):可変:$item_id =>公開ページでデータ作成
商品名称:M(40):可変:$item_name
税額:9(7):可変:$tax
金額(税込):9(7):可変:$amount
自由欄1:M(20):可変:$free1 =>公開ページでデータ作成
自由欄2:M(20):可変:$free2 =>公開ページでデータ作成
自由欄3:M(20):可変:$free3 =>公開ページでデータ作成
請求番号枝番:9(2):可変:$order_rowno
SPS顧客情報返却フラグ:9(1):固定:$sps_cust_info_return_flg
クレジットカー番号:X(16):可変:$cc_number =>公開ページでデータ作成
クレジットカー有効期限:X(6):固定:$cc_expiration =>公開ページでデータ作成
セキュリティコード:X(4):可変:$security_code =>公開ページでデータ作成
クレジットカード情報保存フラグ:9(1):固定:$cust_manage_flg
3DES 暗号化フラグ:X(1):固定:$encrypted_flg
リクエスト日時:9(14):yyyyMMddhhmmss固定:$request_date
リクエスト許容時間:9(4):可変:$limit_second
ハッシュキー:$hashkey

購入までの流れについて

購入までの流れは以下のような形を想定しています。

  1. 商品ページの購入ボタンを押す
  2. ajaxでプラグインが準備した購入手続き処理メソッドへアクセス。
  3. 指定のデータはクラス内のプロパティですべて用意して置き、決められた形でSBペイメントサービスAPIへデータ送信
  4. 返ってきたコードを判定してその後の処理(メールなどの配信や画面遷移)を行う

フォームページの作成

「SBペイメントサービスに送信する項目」のうち、赤字で記したフォーム上でデータを作成するものを入れ混んだフォームページを準備します。

    • お名前
    • メールアドレス
    • 電話番号
    • 個数
    • クレジットカード番号
    • クレジットカード有効期限
    • セキュリティコード
    • Payment処理名(payment_process)(この値は、payment処理で何をするためのデータなのかを設定。とりあえず、payment_startで固定)
    • 支払方法(select_payment_service)(この値は、SBペイメントサービスに送信する必要はないけど、今後の展開を考えて準備。取り急ぎ = sbpsで固定)

このとき、フォームからのデータはJavaScriptで集めてAjaxで送信するので、formタグのaction属性は空欄で大丈夫です。

次からは、早速プラグインの中身を書き書きし始める予定です。