【welcart】設定にない決済代行を追加する方法(ASJペイメント)

  1. ASJペイメントでの準備
  2. 決済モジュール(ダミー)を作成
  3. 注文完了画面に決済ボタンを表示
  4. 注文情報追加
  5. 支払方法を追加
  6. まとめ

welcartにカード決済を付けるべく決済代行サービスを利用することに。
標準対応してるサービスから選んでねってお願いしたのに、手数料が安いからって全く違うところを契約してきた。
welcartの決済代行の一覧にASJペイメントは入ってない(2014年5月現在)。
一応契約前にASJペイメントに「welcartで使えるか?」って訊いて、「使えるよ」って返してきたってことは言ってきたもんの、方法を聞いても「サイトを見れば分かる」のぶん投げ。
仕方ないっちゃ仕方ない。
本気で泣きそうになりながら調べて、参考にしたのは以下のサイト。

実際組み込んだらこんな流れで決済する。

  1. 【購入者】welcartで支払い方法を「クレカ」にして購入手続きを取る
  2. 【システム】「クレカ」を指定されたら購入完了ページにクレカ決済のリンクを表示する
  3. 【システム】リンクをクリックしたらASJペイメントのサイトリンク用ページに顧客名やら金額やらのデータを飛ばす
  4. 【購入者】リンクから飛んだ先でクレカ決済を行う

以下、参考サイトとほぼ一緒だけど確認として。

ASJペイメントでの準備

当然ながら契約してないといじれない。
基本設定を以下のとおりに。

  • 「PC決済機能」にチェックを入れる
  • 「PC用決済完了URL」に該当のアドレスを記入
  • 「PC用戻り先URL」に該当のアドレスを記入
  • 「自由設定項目1項目名」を「電話番号」と記入
  • 「自由設定項目1パラメーター名」を「tel」と記入

6

最低限チェックさえ入れてればいいんだけど、一応電話番号も追加してみる。
URLについてはまた別で。

決済モジュール(ダミー)を作成

決済項目に追加するための仕組み。
/wp-content/plugins/usc-e-shop/settlement/
にあるサンプルファイルをコピーしてリネームする。
今回は「paypal_sample_ja.php」を「asjpayment.php」にした。
中身は一切いじらない。
試してないけど、中身いじらないでいいんなら中身空っぽでもいい気がする・・・

注文完了画面に決済ボタンを表示

名称未設定 2

決済でクレカを選んだ時に注文完了画面で決済のリンクが出るようにする。
/wp-content/plugins/usc-e-shop/includes/
の「purchase_button.php」をいじる。
964行から始まる「default:」から始まるとこに一行追加。
※バージョンにより行数変わるかも。

【元】

[php]
default:
$html .= ‘


‘;
$html = apply_filters(‘usces_filter_confirm_inform’, $html, $payments, $acting_flag, $rand, $purchase_disabled);
$html .= ‘

‘;
[/php]

【変更後】

[php]
default:
$html .= ‘


‘;
$html .= ‘‘;
$html = apply_filters(‘usces_filter_confirm_inform’, $html, $payments, $acting_flag, $rand, $purchase_disabled);
$html .= ‘

‘;
[/php]

注文完了ページである「wc_completion_page.php」に以下のコードが入ってないと表示されない。
デフォルトで元々入ってる。
独自デザインで作ってる時に抜けないように注意すること。
[php]

[/php]

注文情報追加

上記の仕組みにより表示されるボタンと、決済画面に飛ぶときに合わせて必要な情報を送る。
/wp-content/plugins/usc-e-shop/includes/
の「completion_settlement.php」の最後に以下を追加。

[php]
//ここからASJペイメント追加
elseif( isset($_REQUEST[‘acting’]) && ‘asjpayment’ == $_REQUEST[‘acting’] ){
require_once($usces->options[‘settlement_path’] . “asjpayment.php”);
$entry = $usces->cart->get_entry();
$html .= ‘







‘;
$html .= ‘

‘;
$html = apply_filters(‘usces_filter_confirm_inform’, $html, $payments, $acting_flag, $rand);
$html .= ‘

‘;
}
[/php]

6行目のアドレスはテストのを入れてるんで、本チャンではそれように変更。
7行目にはASJペイメントの管理ページ、「登録者情報」で確認できる管理者番号を入れる。

購入手続きの終わったところでカード決済を行うから、うっかり閉じちゃう可能性が否めない。
決済完了ページを支払い別に作れないから(できるかもしれんけど)、装飾しまくってアピールしないと超怖い。

支払方法を追加

4

welcart設定画面の「基本設定」の「支払方法」にクレカを追加。
決済モジュールにはダミーで作ったファイル名の「asjpayment.php」と入れる。
当然ながら、追加したら出る。

3

まとめ

ここまでやってもクレカ分のみ。
銀行振込とかコンビニ払いとかも代行でやりたかったらまた他で作らなきゃいけない。
正直めんどくさい。
既存のモジュールで対応してる決済代行を使うに越したことはない。

追記 2014/08/12

welcartのバージョン上げたら作ったデータが全部吹っ飛んだ。
バックアップしたところで追記以外の部分が更新されたらデータとして古いわけで、随時作りなおさなきゃいけない。
低コストを重視するんなら、そこんところのリスクは背負えと予め言っとかなきゃいけない。
バージョンアップしなくていいってんなら、それはそれでシステムの脆弱性は認めろって、不要な責任は背負わないようにしないと怖い。
そもそもフリーでやってるし、物事全部都合良く考えるなってことやね

コメント

  1. narugaro より:

    コメント失礼します。
    やってみたら、できた。の記事をリンクしてくださってありがとうございます。
    この度、ドメイン取得のためURLが変更になっております。お手数ですが、URLの修正をお願いいたします。
    http://www.narugaro.com/wordpress/welcart-for-wordpress%e3%81%a8%e3%82%af%e3%83%ad%e3%83%8d%e3%82%b3web%e3%82%b3%e3%83%ac%e3%82%af%e3%83%88%e3%82%92%e9%80%a3%e6%90%ba/

    バージョンアップすると消えてしまうので、セキュリティ的にもプラグインの魔改造は良くないことなので、できればやりたくないですよね…。

    • megefeps より:

      narugaroさん
      コメントありがとうございます。
      URLの方、変更致しました。

      記事にしていただいていたおかげで無茶振りに応えられ、当時とても助かりました!
      仰るとおりの不安ばかりですが、サポート外のものを適応させるにはこれしかないですよね・・・
      それ用のプラグインとか作れたら御の字なのですが(笑)

タイトルとURLをコピーしました