- 何が書いてあるのか
がっつり文系の大学生が1ヶ月勉強してrailsアプリをちょっとだけ書けるようになったので、調子に乗って作ったアプリにwebpayを導入しようと思って大量の時間を投下してたくさんの人に助けられなんとか導入した話(導入を当時の僕がそのまま実行すれば成功するように書きます。)
何も問題がなければ多分5分くらいでできると思います。
- webpayとは
クレジットカード決済のやつ
https://webpay.jp
決済の中では簡単に導入できるんだとか。
webpayの登録は終わっていること前提で
(簡単にできるので。確かメールアドレス入れるくらいだったと思う。)
1 とりあえず testappでも作ってみる
(導入する前に怖かったので別のアプリを作って試しました。。。。)
$ rails new testapp
$ cd testapp
2 webpayのgemをインストール
gem 'webpay'
$ bundle install
3 ルーティング
get 'products' => 'products#index'
post 'products/pay' => 'products#pay'
4 コントローラー
$ bundle exec rails g controller products
def index
end
def pay
webpay = WebPay.new('鍵')
webpay.charge.create(
amount: 400,
currency: "jpy",
card: params['webpay-token']
)
end
テスト環境用非公開鍵はwebpayのダッシュボードのユーザー設定に入ると書いてある。
というより、ログインした後、CheckoutHelperに書いてあるコードを使えば鍵を調べなくていい。
ちなみにamountが金額
5 view
<form action="/アクション名" method="post">
<script src="https://checkout.webpay.jp/v3/" class="webpay-button" data-key="鍵" data-lang="ja"></script>
</form>
https://webpay.jp/docs/checkout
このページにはviewにこのコードを埋め込めば使える的なことが書いてあるのですが
railsはどうやらセキュリティ対策上これだと動いてくれなくて
<%= form_tag(action: :pay, method: :post) do %>
<script src="https://checkout.webpay.jp/v3/" class="webpay-button" data-key="鍵" data-lang="ja"></script>
<% end %>
form_tagに書き換えてやらないといみたいです。
scriptの部分はCheckoutHelperのコードをそのまま使えばいいのでformの 部分だけ書き換える感じで
支払い完了
これで準備完了
$ rails s
これで
localhost:3000/products
にアクセスすれば「カードで支払う」というボタンが出てきているので
webpayのテスト用カード番号などを入力すればテスト決済ができる。
一応これで決済はできる
けど、決済情報をとったりできないので
その辺を次回で書きたいなと思う
2016.08.18追記
BASE社のPAY.JPの導入について書いたので興味がある方は
プログラマー歴、半年未満でもわかるpay.jp導入(rails)
2016.11.06追記
webpayの終了が発表されましたね。
もしよかったらpay.jpを利用してみてください。
(別にpay.jpの中の人ではないです。)