テックキャンプ日誌 Day55 (Pay.jp固有メソッド)

テックキャンプ日誌(全70日間)

55日目終了。

↓今日やったこと

フリマアプリ 商品購入機能実装(Payjp売上反映確認)

 

出品機能をやった後だと購入機能はイージーに感じますね〜。

と言ってもこのQiitaを参考にしたんですけどw ( ̄▽ ̄) https://qiita.com/takachan_coding/items/d21c0d2621368c9b0d9b

正直何も見ないと何から始めていいか分からない。purchaseコントローラー作るのか〜って感じ。確かにitemsコントローラーだけでやろうとするとメソッドが被っちゃいますからね。モデルは作らずに、コントローラーだけ作るパターンもあるということが勉強になりました。

参考記事を見て、ただコピペするだけじゃなく、コードの理解はもちろんjavascriptのコードをjQueryにリファクタリングしたり、form_tagは古いのでform_withに変えたりしてます!

Pay.jpも自分なりに理解しようと思って、今回使った固有のメソッドをまとめてみました。

 

Pay.jp 固有メソッド(今回使用分抜粋)

 

setPublicKey(key)

認証のためのパブリックキーをセットします。引数:key(API公開鍵)

例:

Payjp.setPublicKey("pk_test_0383a1b8f91e8a6e3ea0e2a9");

 

createToken(card, calback)

PAY.JPのサーバーと通信し、カード情報の認証を行い、トークンを作成します。

引数:card カード情報。number, exp_year, exp_month が必須

引数:callback レスポンス取得時に呼ばれるコールバック関数。第一引数にHTTPステータス(number)、第二引数にtokenオブジェクトが入る。

例:

var card = {
  number: document.querySelector('input[name="number"]').value,
  cvc: document.querySelector('input[name="cvc"]').value,
  exp_month: document.querySelector('select[name="exp_month"]').value,
  exp_year: document.querySelector('input[name="exp_year"]').value
};


Payjp.createToken(card, function(status, response) {
  if (status === 200) {
    // handle token object and send back to your server. You can get token id from "response.id".
  } else {
    // handle error like displaying error message.
  };
});

 

Payjp::Customer.create()

メールアドレスやIDなどを指定して顧客を作成します。引数:card_id など

例:

Payjp::Customer.create(
  description: 'test'
  card: params['payjp-token']
)

 

Payjp::Customer.retrieve()

PayJPに定義されている顧客情報を取得します。引数:customer_id など

例:

Payjp::Customer.retrieve('cus_121673955bd7aa144de5a8f6c262')

 

Payjp::Charge.create()

カードを保有している顧客IDを指定して支払いを作成します。

引数:amount(金額), currensy(通貨単位), card_id or customer_id など

例:

harge = Payjp::Charge.create(
  :amount => 3500,
  :card => 'tok_76e202b409f3da51a0706605ac81',
  :currency => 'jpy',
)

 

今回使用した分だけです。もっと知りたいという方はPay.jpのリファレンス