Rewald | Custom Rewards Builder.
リワルド | Rewaldで自分好みの報酬プログラムを設計しよう!
はじめに
Rewald(リワルド)を使えば、クレジット決済事業者の制約を受けずに、あなた自身のブログやECショップで独自の報酬ポイントプログラムを始めることができます。WordPressとの親和性も高いショートコード(機能別コード)と専用APIの組み合わせにより、システム開発の手間を抑えつつ、手軽に自分たち専用のポイント発行が実現できます。
このページはRewald(リワルド)を使って、あなた独自のポイントを発行するのに必要な環境準備(認証IDの発行)から機能別コードまで詳細且つ体系的に解説しています。
Rewald(リワルド)の特徴
- WordPress環境で独自の報酬ポイントプログラムの運用をおこなう場合は、HTMLタグとショートコード(機能別コード)の組み合わせのみで必要なポイント処理を完結できます。
- 複雑になりがちなポイント関連の処理も8個の機能別コードとAPIの連携により、運用環境の差異を極力吸収することで、実装時の作業負担を軽減しています。
- 機能別コードそれぞれに「callback(コールバック)」属性を設けており、この仕組みをつかって、あなた独自の処理を追加することができるなど、拡張性や柔軟性といった事にも配慮した設計が施されています。
導入準備
あなた独自の報酬ポイントプログラムを始めるにはRewald(リワルド)の環境設定(認証IDも含む)コードを取得して、ご自身のサイトに追加するところからスタートします。この設定コードには、APIと連携するための制御命令とあなたの識別情報が含まれています。 環境設定コードの取得はこちらから
用意が必要なもの
- Rewald(リワルド)が発行した「環境設定コード」
- あなたのWebサイトやWordPressにおける管理者権限
環境設定コードの組み込み場所(コピペでOK)
| 利用環境 | 記載場所 |
|---|---|
| WordPress | ご利用テーマのfunctions.php |
| 独自開発サイト(ECショップその他) | システムのグローバル変数定義箇所 |
注意:この設定コードはあなた固有の認証情報を含みます。第三者に漏洩しないよう十分ご注意ください。
ポイント処理の仕組み
Rewald(リワルド)によるポイント処理は、以下のショートコード(機能別コード)の組み合わせにより実現されます。
1. [point_setting] 基礎情報の設定 (通貨/料率などの定義)
2. [point_trans_open] 決済データと紐付け
3. [point_trans_close] ポイント処理完了フラグ
4. [point_trans_detail] 実行結果の通知
5. [point_trans_cancel] ポイント処理キャンセル時の通知
6. [point_own] 獲得済みポイント数の表示
7. [point_purchase_open] ポイントの購入処理開始
8. [point_purchase_close] 決済金額を確定した後、指定のポイント数を付与
各コードの使い方
- 【役割】何ができるか
- 【解説】指定項目について
- 【設置場所】どこに貼り付けるのか
- 【記述例】WordPress & PHP
- 【属性一覧】指定可能なパラメーター
[point_setting] 基礎情報の設定 (通貨/料率などの定義)
役割::ポイント処理を実行するにあたっての基礎情報を定義
解説:処理の対象となる通貨と実行時の料率(還元と使用)を指定します
設置場所:ポイント入力欄が存在するページ (参考例:今回利用ポイント数入力欄の存在画面:①標準入力形態) (参考例:今回利用ポイント数入力欄の存在画面:②利用選択式形態)
記述式(WordPress)
[point_setting currency_type="" conv_rate="" use_rate="" callback_name=""]
記述式(PHPプログラム)
<?php point_setting(array('currency_type' => '', 'conv_rate' => '', 'use_rate' => '', 'callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<span style="display: block">商品価格</span><span id="price_id">¥1,000</span>
<label for="use_point_id">ポイント利用</label><input type="text" name="use_point_id" id="use_point_id" value="">
[point_setting currency_type=”JPY“ conv_rate=”5“ use_rate=”0.1“ callback_name=””]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| currency_type | JPY, USD, EUR, BTC | 処理対象の通貨 ※利用開始直後はJPYのみ有効 |
| conv_rate | 0.1-100(%) | 還元率(ポイント付与率)適用後の発生金額端数は四捨五入 |
| use_rate | 0.1-100(%) | 使用率(ポイント利用時交換レート)適用後の発生金額端数は四捨五入 |
| rate | 0.1-100(%) | 料率の値が同じ場合(conv_rate=use_rate)、rateに集約した代替名指定が可能 |
| callback_name | myFunctionName | 設定値の確認が必要な場合などに独自の呼び出し関数を指定することで任意の場所に指定値を表示する |
メモ:料率(conv_rate, use_rate)の記述式
- 還元率と使用率の値が同じ場合は
rate=""という省略表記の指定も可能 - 個別設定と省略指定における有効性判断(優先度)ですが、個別設定の2項目対もしくは省略形どちらか「片方の指定方法のみ真」
- 有効性判断の仕様(どちらか片方のみ真)により個別設定の2項目対にプラスして省略形も指定した場合(例:
conv_rate="" use_rate="" rate="")、または個別設定2項目のどちらか1項目と省略形(例:conv_rate="" rate=""oruse_rate="" rate="")など混ぜ合わせた値指定が記述されている場合、すべてエラーが返されます。
注意:Rewald(リワルド)の利用開始直後は料率(conv_rate, use_rate)指定はできません。
[point_trans_open] 決済データと紐付け
役割:決済金額(商品価格合計)にポイント計算処理を追加する
解説:決済金額(商品価格合計)とポイント関連処理の紐付け。コールバック(callback_name)には決済会社に通知するポイント処理後の最終確定金額を受領するための関数を指定します
設置場所:今回利用ポイント数の入力欄と決済金額(商品価格合計)の表示部分の両方が存在するページ(こちらのタグは前述のポイントセッティングタグと対で使われる事が多い) (参考例:今回利用ポイント数入力欄:①標準入力形態と決済金額(商品価格合計)の表示部分の両方が存在する画面) (参考例:今回利用ポイント数入力欄:②利用選択式形態と決済金額(商品価格合計)の表示部分の両方が存在する画面)
記述式(WordPress)
[point_trans_open var_price_id="" var_use_point_id="" var_point_select_name="" callback_name=""]
記述式(PHPプログラム)
<?php point_trans_open(array('price' => '', 'use_point' => '', 'select_point' =>'', 'callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<span style="">商品価格</span><label for="price_id" id="price_id" >¥1,000</label><span style="">個数</span><input type="text" id="" name="price_id" value="">
<span style="display: block">ポイントの利用</span>
<input type="radio" name="NAME" value="no">利用しない
<input type="radio" name="NAME" value="var"><input type="text" name="" value="">ポイント使う
<input type="radio" name="NAME" value="all">すべて使う
[point_trans_open var_point_select_name=”“ callback_name=””]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| var_price_id | string | 商品価格を表示しているタグに付与されたID名(識別IDがない場合は付与する) |
| var_use_point_id | string | ポイント入力欄に付与されたID名(識別IDがない場合は付与する |
| var_point_select_name | string | ポイント入力欄が選択方式の場合は、上記の「var_use_point_id」でなく、こちらの属性を使う。指定した識別名称値を< input name="名称">という形で記述した後、各タグの「value」値には「no」=利用しない 「var 」=n数ポイントをつかう 「all」=すべて使う。という組み合わせ形式で記述する |
| callback_name | myFunctionName | ポイント処理後の決済会社のシステムに通知が必要な最終確定金額はこちらで指定したあなた独自の関数をつかって受領します |
メモ:こちらの「point_trans_open」コードタグですが、ご利用環境によってはポイント入力欄が「注文確認画面」に存在する場合もあるので、その際は前項の「point_setting」コードタグもつかい両方を注文確認ページに貼り付けて下さい。
注意 : ポイント処理は商品価格合計金額のみに適用されます!
商品購入時の決済処理との紐付けですが、購入対象となる品物が複数あった場合でもそれぞれ個別にはポイント処理を実行しません。Rewald(リワルド)の仕組みでは「商品個数」をそれぞれ個別計算して処理をするという設計にはなっておらず、ポイント処理の実行にあたっては「決済時の合計金額」をひとつの単位とみなします。こちらの「point_trans_open」コードタグで決済処理と紐付ける際は「ショッピングカートに入っている商品の合計金額」に対して適用されるという事を意識して下さい。
[point_trans_close] ポイント処理完了フラグ
役割:ポイント関連の処理を確実に終了するための通知
解説:注文確定(決済)ボタンと紐付けすることにより、サードパーティの決済処理と連携したポイント関連の処理を確実に終了。コールバック(callback_xx)をつかい、サードパーティの決済処理開始トリガーとなるボタンとの紐付けやポイント処理後に決済会社に通知する最終確定金額を取り出す。callback_idには注文確定(決済)ボタンに付与したID名、callback_nameは最終確定金額を受領するための関数を指定する。
設置場所:注文確定(決済)ボタンが設置されるページ (参考例:注文確定(決済)ボタンが設置されている画面)
記述式(WordPress)
[point_trans_close callback_id=”” callback_name=""]
記述式(PHPプログラム)
<?php point_trans_close(array('callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<span style="display: block">商品小計</span><span id="price_id" >¥2,000</span>
<span style="display: block">ポイント割引</span><span id="price_id" >¥300</span>
<span style="display: block">配送料</span><span id="price_id" >¥0</span>
<span style="display: block">消費税</span><span id="price_id" >¥170</span>
<span style="display: block">合計金額</span><span id="price_id" >¥1,870</span>
<input type="submit" id="pay_out_button_id" name="submit" value="注文確定">
[point_trans_close callback_id=”pay_out_button_id” callback_name="myFunctionName"]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| callback_id | string | 決済(注文確定)ボタンに付与したID名(識別IDがない場合は付与する) |
| callback_name | myFunctionName | 決済会社のシステムに通知が必要なポイント処理終了後の最終確定金額を受領するためのあなた独自の関数をこちらで指定する(ゼロ決済の処理が必要な場合はこちらから取得する?===> 11/09 このクローズの処理で実際にPSPとのやりとりが発生するため、ゼロ決済の場合の処理として、自前のボタン生成可否判断などのトリガー役割を担う) |
[point_trans_detail] 実行結果の通知
役割:ポイント処理の実行結果を報告する
解説:ポイント処理を施した最終確定金額も含めて処理内容の詳細を取得できます
設置場所::注文完了ページ (参考例:注文完了画面)
記述式(WordPress)
[point_trans_detail callback_name=””]
記述式(PHPプログラム)
<?php point_trans_detail(array('callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<div><p>ご注文手続き完了しました。ご利用ありがとうございます!</p></div>
[point_trans_detail callback_name=”myFunctionName”]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| callback_name | myFunctionName | ポイント処理が実行された後の結果情報を取得するための関数を指定 |
[point_trans_cancel] ポイント処理キャンセル時の通知
役割:ポイント関連処理の実行を取り消す
解説:処理が取り消された場合の通知を受け取るには、そのための関数を指定します
設置場所:何らかの理由でポイント処理が取り消された場合に表示させるページ (参考例:注文キャンセル画面)
記述式(WordPress)
[point_trans_cancel callback_name=””]
記述式(PHPプログラム)
<?php point_trans_cancel(array('callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<div><p>注文処理が途中でキャンセルされました。この結果が意図したものでない場合は窓口までご連絡下さい。</p></div>
[point_trans_cancel callback_name=”myFunctionName”]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| callback_name | myFunctionName | ポイント処理が取り消された後の結果情報を取得するための関数を指定する |
[point_own] 獲得済みポイント数の表示
役割:対象者の獲得済みポイント数を確認する
解説:ポイントの保有者などに対して、これまでに獲得したポイント数を通知します。獲得ポイント数をお知らせする場合は、そのための関数をコールバック(callback_name)で指定します
設置場所:設置場所に制約なし(利用者のマイページなど) (参考例:獲得ポイント確認画面)
記述式(WordPress)
[point_own callback_name=””]
記述式(PHPプログラム)
<?php point_own(array('callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
<span id="" style="display: block">ID:</span> 00011122233
<span id="" style="display:block">現在獲得PT:</span>1000
[point_own callback_name=”myFunctionName”]
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| callback_name | myFunctionName | ポイント保有者などに獲得済みポイントをお知らせするための独自関数を指定する |
メモ:ポイント処理の対象者を識別する
Rewald(リワルド)はポイント処理を実行するにあたり、対象者を識別するための独自UUIDを定義します(この場合の対象者はあなたでなく、あなたの顧客を指します)この識別情報はクッキーとしてお買い物をする対象者のブラウザに保存されます。ポイント処理の依頼が発生するとRewald(リワルド)のシステムは対象者側にUUIDの存在確認を依頼し、既にUUIDが存在してたら、その有効期限を延長します。今回がはじめての処理依頼と判断された場合は新規にUUIDを生成し、対象者のブラウザに識別情報を保存します。
注意 : 利用者情報の保持(永続性の担保)特に重要
サイト利用者を識別し、それぞれのポイント情報を保持することは利用者側にその識別子(UUID)を保存しておくことで実現できますが、この利用者情報の扱いは特に注意が必要です。あなたの顧客のポイント情報を紐付ける識別子(UUID)はクッキー(Cookie)としてブラウザに保存されることから、避けては通れない特有の問題が生じます(利用者環境の不確実性:クッキーはブラウザを跨いで使い回しできない)この不確実性に対処するには、あなたご自身が保有する顧客データベースとクッキーとして保存される識別子の紐付け処理が必要です。あなたの顧客データと識別子(UUID)の紐付けがおこなわれることで、永続的にいつでも最新のポイント情報を扱えることが担保されます。以下に識別子(UUID)の紐付けに用いるコードサンプルを掲載しておくので、こちらを参考にポイント利用者情報を保持するための実装をおこなってください。
[point_purchase_open] ポイントの購入処理開始
役割:
解説:
設置場所:
記述式(WordPress)
[point_purchase_open currency_type="" conv_rate="" callback_id="" callback_name=""]
記述式(PHPプログラム)
<?php point_purchase_open(array('currency_type' => '', 'conv_rate' => '', 'callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| currency_type | JPY, USD, EUR, BTC | 処理対象の通貨 ※利用開始直後はJPYのみ有効 |
| conv_rate | 100-XXX(%) | 還元率(ポイント付与率)適用後の発生金額端数は四捨五入 |
| callback_id | string | 決済(注文確定)ボタンに付与したID名(識別IDがない場合は付与する) |
| callback_name | myFunctionName | 決済ボタンに割り当てられた金額で購入できるポイント数を返す(リワルドを利用するポイント販売元の運営者は、決済ボタンで指定されている金額とこちらで取得できる付与ポイント数に齟齬がないことを確認して下さい) |
✍︎ メモ:パーチェスオープンのコード設計として、購入金額をセレクト方式で選択できるUIに対して紐づけすることは不可能(機能制限)とする!
✍︎ メモ:ポイント購入時の還元率(conv_rate)の指定について
等価率(下限値)=100%にするため、固定換算ポイント方式を採用。この方式であれば、日本国通貨(円)以外の購入(他通貨対応)でも取得できるポイント数の価値が為替変動の影響を受けないで済む。ポイント購入時の料率指定(conv_rate: 還元率)は購入通貨の相関性とポイントそのものの価値にも影響を及ぼすため、仕様定義と設計には特に注意が必要!
✍︎ メモ:ポイント購入のためのコードタグ(機能コード)の設計が難しいというのは、これまでは整備してきたタグ利用の環境が、たとえ不正があっても「ポイントが消費されるだけ(これもダメだが) 理由: 最初にポイントを確保しているから」というものであったの対し 、ポイント購入の処理実装で最初にポイントを確保するという、これまでに整備してきたロジックを踏襲してしまうと、購入キャンセルをされた場合に「ポイントを不正に取得できる」という現象が発生してしまうので、この対応が必要になったことやその対策を検討するなかで、PSPに対するゼロ決済にも対処する必要性が出てきてしまった。
✍︎ メモ:決済額が事前に決まっている場合と条件をクリアした後、最終的に確定した決済金額がわかったら、改めて決済ボタンが生成されるという(javascript SDK)PSPのサービス仕様に僕らはどのようにフィットさせるかを検討せざるを得ない!
✍︎ メモ:PayPalをPSPとして利用している場合に「ゼロ決済」となったときの処理フローを提示してあげる必要はあり!
✍︎ メモ:ポイント購入において、購入金額にプラスして「現在保有ポイント」を利用することの可否確認!===> 11/09 ポイント購入のために保有ポイントを利用する事自体意味がない。物品(デジタルコンテンツ含む)購入する場合であれば、支払い金額に保有ポイントもつかう事で割引を得ることが成り立つが
[point_purchase_close] 決済金額を確定した後、指定のポイント数を付与
役割:
解説:
設置場所:
記述式(WordPress)
[point_purchase_close callback_name=""]
記述式(PHPプログラム)
<?php point_purchase_close(array('callback_name' => '',))?>
HTMLタグとショートコードを組み合わせた記述例(WordPress)
属性一覧
| 名前 | 設定値 | 説明 |
|---|---|---|
| callback_name | myFunctionName | 購入したポイント数とそのための決済金額 |
無料案の制限
- 決済金額 JPY100,000/月 まで無料
- 無料案では、JPYのみ利用可、conv/use_rate の指定不可
- 制限解除には有料プランへの移行が必要
セキュリティに関する注意
ACCESS_TOKENは機密情報のため、管理はご自身で完璧に- ログやエクスポート時にはマスク処理を必ず行ってください
よくある質問 (FAQ)
Q. WordPressでショートコードが動作しません
A. functions.phpに実行関数が記載されているかを確認してください
Q. 環境コードが読み込まれない
A. ブラウザのキャッシュをクリアして再読み込みしてください
(続きのコードや入力用フォームは需要に応じて追加可能)