SuperSaaS-FAN
〜 SuperSaaSの使い方 〜

Loading...

オンライン決済処理に既定サービス以外を利用

オンライン決済に既定サービス以外を指定してカスタマイズする

SuperSaaSのオンライン決済処理は、既定のサービスを介する設定以外に、独自開発や拡張利用が可能となるカスタマイズができます。

決済処理を簡単に外部処理へと組み込める

チェックアウト(支払い請求)時に任意の指定URLに決済処理用の情報をPOSTできますので、独自決済システムや既定以外の決済サービスへ処理を送ることが可能です。

その処理結果をSuperSaaSの決済処理用API「ipn」を用いてSuperSaaSに反映する仕組みです。

仕組みとしてはシンプルですので、組み込みは簡単です。
ただし、セキュリティや処理の厳格性などには十分な設計と保守体制に留意しましょう。

決済用情報のPOST方法

決済(チェックアウト)時に決済用の情報をPOSTする方法は、既定の決済サービスの設定と同じく、管理メニューにある支払い設定にあるショップページのトップに表示するメッセージへの$gatewayを用いた記述で指定することになります。

例:
$gateway{custom POST先のURL テストモード時のPOST先URL トリガーとなるボタンのテキスト}

指定は簡単です。$gatewaycustomを指定して、POST先URLとテストモード時のPOST先URL、トリガーとなるチェックアウト画面に表示されるボタン用のテキストを指定します。

決済処理のPOST先を指定 カスタム決済用のボタンが追加される

カスタムで設定したボタンが追加されますので、そのボタンをクリックされた場合は指定URLに決済用の情報がPOSTされて処理を引き継ぐことになります。

テストモード時用のURLも指定できるのが便利ですね!

決済処理用の情報としてPOSTされる情報

論理名概要
description対象予約の日時情報や、商品の説明など処理対象の識別用情報です。
transaction_id決済処理の管理IDです。
amount決済金額(数値)です。
currency_code

決済用の通貨コード(3文字フォーマット)です。

(例:USD、EUR、JPY)

transaction_checksum

決済用のセキュリティーコードです。

APIを用いた決済処理確定時のチェックサムに用います。

success_url

決済完了した案内が表示される画面のURLです。

これは案内表示用のURLでしかなく、決済処理が行われるわけではありません。

cancel_url

決済がキャンセルされた案内が表示される画面のURLです。

これは案内表示用のURLでしかなく、決済のキャンセル処理が行われるわけではありません。

user_id決済するユーザーのユーザーIDです。
user_name決済するユーザーのユーザー名です。
user_email決済するユーザーのメールアドレスです。
quantity複数の予約の場合や繰り返し予約などで予約数が複数の場合などの予約数の合計(総予約数)です
credit_consumed決済に含まれなかった、利用されたポイント数です。
ポイントを使用された場合、決済金額は価格から使用されたポイントを引いた額となるための付与情報と思われます。

たまたま今だけかもしれませんが、確認すると不明な値が格納されていました。

なぜか想定の100倍になっているように思います。

外貨とかでよくある小数点以下二桁込みとかで「.」が抜けてるだけとかかも?

ちょっと不明なパラメータです…

たとえばログインを必要としていない場合のユーザー名など、設定や状況で存在しない情報はPOSTされません。

POST先で決済処理を行い、その結果をAPIを用いてSuperSaaSに反映する流れになります。

決済処理結果をSuperSaaSに返すAPI

決済処理結果はSuperSaaSのAPI「ipn」を用いてSuperSaaSに反映します。

https://www.supersaas.com/api/ipnに対して規定の処理結果をPOSTする仕組みです。

処理結果に必要なPOSTフィールド

論理名概要
status支払い処理結果です。返り値は以下から指定します。
完了の場合 completed
キャンセルの場合 canceled
払い戻しの場合 refunded
transaction_id決済処理でPOSTされた時に発行された管理IDを指定します。
amount決済金額(数値)です。
currency_code

決済用の通貨コード(3文字フォーマット)です。

(例:USD、EUR、JPY)

transaction_checksum決済処理でPOSTされた時に発行されたセキュリティーコードを指定します。
api_key

APIを利用するためのキーコードです。

(ベーシック認証で処理を行う場合はAPIキーを指定しなくても良いようです。)

user_id決済情報にユーザーIDが含まれている場合は、指定する必要があります。

POSTで受け取った情報にstatusとapi_keyを足して返す感じです。
とっても簡単♪