Comments (22)
おつかれさまでした!参加した感想をブログとかにまとめてくれるとOSS Gateワークショップの普及につながってうれしいです!
(次回からはフィードバックしたメンターの人にその場でcloseしてもらうようにしよう。おつかれ!とか言いながら。)
from workshop.
*作業: インストール
https://github.com/payjp/payjp-ruby
from workshop.
*作業:インストール
ドキュメント
https://pay.jp/docs/api/
from workshop.
*作業:インストール
決済ページ作成
from workshop.
決済ページヘのリンク
<h2><%= link_to pay_path(@item.id) do "通常決済(クレジットカード)" end %></h2>
from workshop.
認証OK
https://pay.jp/docs/api/?ruby#認証
from workshop.
サンプルコードのAPIキーは使えないので自分のAPIキーを利用して顧客の登録OK
from workshop.
課金エラー
Cannot charge a customer that has no active card: cus_a67723dc15826b6a9be34bf6f0a0
顧客のカード登録を先に行えば通りそう
from workshop.
カード登録と課金OK
#カード登録
customer = Payjp::Customer.retrieve('cus_a67723dc15826b6a9be34bf6f0a0')
customer.cards.create(
number: "4242424242424242",
exp_month: "12",
exp_year: "2017",
cvc: "123",
name: "HOGE HOGE"
)
#課金
Payjp::Charge.create(
:amount => 3500,
:customer => 'cus_a67723dc15826b6a9be34bf6f0a0',
:currency => 'jpy',
)
from workshop.
支払情報を取得
@res = Payjp::Charge.retrieve('ch_9ac9e317a18a3afa8f3534853716b')
結果
{ "id": "ch_9ac9e317a18a3afa8f3534853716b", "amount": 3500, "amount_refunded": 0, "captured": true, "captured_at": 1458960766, "card": {"id":"car_7949ddf458fa8886aaa1d549fbf6","address_city":null,"address_line1":null,"address_line2":null,"address_state":null,"address_zip":null,"address_zip_check":"unchecked","brand":"Visa","country":null,"created":1458960766,"customer":"cus_a67723dc15826b6a9be34bf6f0a0","cvc_check":"passed","exp_month":12,"exp_year":2017,"fingerprint":"e1d8225886e3a7211127df751c86787f","last4":"4242","livemode":false,"metadata":{},"name":"HOGE HOGE","object":"card"}, "created": 1458960766, "currency": "jpy", "customer": "cus_a67723dc15826b6a9be34bf6f0a0", "description": null, "expired_at": null, "failure_code": null, "failure_message": null, "livemode": false, "metadata": {}, "object": "charge", "paid": true, "refund_reason": null, "refunded": false, "subscription": null }
from workshop.
存在しない支払情報を取得
@res = Payjp::Charge.retrieve('ch_9ac9e317a18a3afa8f3534853716a')
There is no charge with ID: ch_9ac9e317a18a3afa8f3534853716a
from workshop.
エラーレスポンスが取得できません
異常値をAPIを呼びエラーを発生させた際エラーレスポンスが来ず、例外(Payjp::InvalidRequestError)が発生します
期待する結果はエラーが発生した際はエラーレスポンスが取得できることです
試した処理
支払情報を取得
正常(支払情報がある)
@res = Payjp::Charge.retrieve('ch_9ac9e317a18a3afa8f3534853716b')
結果
{ "id": "ch_9ac9e317a18a3afa8f3534853716b", "amount": 3500, "amount_refunded": 0, "captured": true, "captured_at": 1458960766, "card": {"id":"car_7949ddf458fa8886aaa1d549fbf6","address_city":null,"address_line1":null,"address_line2":null,"address_state":null,"address_zip":null,"address_zip_check":"unchecked","brand":"Visa","country":null,"created":1458960766,"customer":"cus_a67723dc15826b6a9be34bf6f0a0","cvc_check":"passed","exp_month":12,"exp_year":2017,"fingerprint":"e1d8225886e3a7211127df751c86787f","last4":"4242","livemode":false,"metadata":{},"name":"HOGE HOGE","object":"card"}, "created": 1458960766, "currency": "jpy", "customer": "cus_a67723dc15826b6a9be34bf6f0a0", "description": null, "expired_at": null, "failure_code": null, "failure_message": null, "livemode": false, "metadata": {}, "object": "charge", "paid": true, "refund_reason": null, "refunded": false, "subscription": null }
異常(支払情報がない)
@res = Payjp::Charge.retrieve('ch_9ac9e317a18a3afa8f3534853716a')
結果(例外)
Payjp::InvalidRequestError: There is no charge with ID: ch_9ac9e317a18a3afa8f3534853716a
from /usr/local/rvm/gems/ruby-2.2.1/gems/payjp-0.0.3/lib/payjp.rb:224:in `handle_api_error'
期待する結果(エラーレスポンスで戻ってくる)
{
"error": {
"message": "There is no charge with ID: ch_9ac9e317a18a3afa8f3534853716a",
"param": "id",
"status": 404,
"type": "client_error"
}
}
from workshop.
やってないこと
他の処理でのエラーレスポンスの発生検証
from workshop.
- 作業:issueを出した
- 思っていること:issue読まれる??
from workshop.
- payjp-rubyをフォークしてローカルでソースをチェック開始
- バグ見つかるかな?
てかそもそもgemってどうやってデバッグする??
from workshop.
- アプリで読み込んでいるgemをローカルに変更
gem 'payjp', path: '../payjp-ruby'
from workshop.
- ローカルのgemはspringが読み飛ばすのでspringを停止
chmod +x bin/spring
bin/spring status
bin/spring stop
from workshop.
- issueがクローズドになった!
- とても早くてビックリ
payjp/payjp-ruby#5
正しい挙動でドキュメントが間違っていたとのこと。
payjp-rubyのデバッグ不要
from workshop.
- エラーハンドリングを試す
- 今度はうまくいくはず
from workshop.
- エラーハンドリングOK(支払い情報取得)
@res = e.json_body
from workshop.
- 返金APIの正常・エラー動作検証をします
from workshop.
- 返金APIの検証完了
- 他のAPIも多分OKかと
from workshop.
Related Issues (20)
- OSS Gate Workshop: online: 2024-06-08: fusen: OSS_NAME: Work log HOT 21
- OSS Gate Workshop: online: 2024-06-08: kuraryu: wheel: Work log HOT 41
- OSS Gate Workshop: online: 2024-06-08: wxqmailbox: Tabnine: Work log HOT 5
- OSS Gateオンラインワークショップ2024-07-27
- OSS Gateワークショップ2024-09-xx HOT 1
- OSS Gate Workshop: online: 2024-07-27: daipom: Fluentd: Work log HOT 11
- OSS Gate Workshop: online: 2024-07-27: blacktoad30: GNU Guix: Work log HOT 10
- OSS Gate Workshop: Online: 2024-07-27: jkyochen: Fluentd: Work log HOT 19
- OSS Gate Workshop: online: 2024-07-27: otegami: PGroonga: Work log HOT 5
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: tadsan: deepcopy: Work log HOT 5
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: hana979: laravel/pint: Work log HOT 11
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: myou1985: django-debug-toolbar: Work log HOT 15
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: noko1024: python/websockets Work log HOT 4
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: fujiokayu: ${OSS_NAME}: Work log HOT 1
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: tetrapod418: ${OSS_NAME}: Work log HOT 29
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: otoyuzu705: python-dotenv: Work log HOT 14
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: satou-haruka-37: ransack: Work log HOT 47
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: 斉藤賢悟: react-hook-form: Work log HOT 15
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: pepi-p: python-skyfield: Work log HOT 7
- OSS Gate Workshop: ゆるい勉強会旭川: 2024-07-28: TadaTeruki: winit: Work log HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from workshop.