module GMO::Payment::ShopAPIMethods
Attributes
Public Class Methods
# File lib/gmo/shop_api.rb 19 def initialize(options = {}) 20 @shop_id = options[:shop_id] 21 @shop_pass = options[:shop_pass] 22 @host = options[:host] 23 @locale = options.fetch(:locale, GMO::Const::DEFAULT_LOCALE) 24 unless @shop_id && @shop_pass && @host 25 raise ArgumentError, "Initialize must receive a hash with :shop_id, :shop_pass and either :host! (received #{options.inspect})" 26 end 27 end
Public Instance Methods
2.14.2.1.決済変更
仮売上の決済に対して実売上を行います。尚、実行時に仮売上時との金額チェックを行います。 /payment/AlterTran.idPass ShopID ShopPass AccessID 取引ID AccessPass 取引パスワード JobCd 処理区分 “SALES” Amount 利用金額
@return ###
AccessID AccessPass Forward Approve TranID TranDate
example ###
gmo.alter_tran({
access_id: "a41d83f1f4c908baeda04e6dc03e300c", access_pass: "d72eca02e28c88f98b9341a33ba46d5d", job_cd: "SALES", amount: 100
}) {“AccessID”=>“381d84ae4e6fc37597482573a9569f10”, “AccessPass”=>“cc0093ca8758c6616fa0ab9bf6a43e8d”, “Forward”=>“2a99662”, “Approve”=>“6284199”, “TranID”=>“1302140555111111111111193536”, “TranDate”=>“20130215110651”}
# File lib/gmo/shop_api.rb 357 def alter_tran(options = {}) 358 name = "AlterTran.idPass" 359 required = [:access_id, :access_pass, :job_cd] 360 assert_required_options(required, options) 361 post_request name, options 362 end
2.15.2.1.金額変更
決済が完了した取引に対して金額の変更を行います。
@return ###
AccessID AccessPass Forward Approve TranID TranDate
example ###
gmo.change_tran({
access_id: "a41d83f1f4c908baeda04e6dc03e300c", access_pass: "d72eca02e28c88f98b9341a33ba46d5d", job_cd: "CAPTURE", amount: 100
})
# File lib/gmo/shop_api.rb 380 def change_tran(options = {}) 381 name = "ChangeTran.idPass" 382 required = [:access_id, :access_pass, :job_cd, :amount] 383 assert_required_options(required, options) 384 post_request name, options 385 end
@params ###
AccessID AccessPass OrderID JobCd Amount Tax
@return ###
AccessID AccessPass Status Forward Approve TranID TranDate
example ###
gmo.change_tran_brandtoken({
access_id: "21170701482c86c3b88ff72b83bfd363", access_pass: "51f36feba120de1e6e29532e5a3a5e3e", order_id: "ord10001", job_cd: "CAPTURE", amount: 2000
})
> {“AccessID”=>“21170701482c86c3b88ff72b83bfd363”, “AccessPass”=>“51f36feba120de1e6e29532e5a3a5e3e”, “Status”=>“CAPTURE”, “Forward”=>“2a99663”, “Approve”=>“5538477”, “TranID”=>“1707311633111111111111771224”, “TranDate”=>“20170731163343”}¶ ↑
# File lib/gmo/shop_api.rb 411 def change_tran_brandtoken(options = {}) 412 name = "ChangeTranBrandtoken.idPass" 413 required = [:access_id, :access_pass, :order_id, :job_cd, :amount] 414 assert_required_options(required, options) 415 post_request name, options 416 end
【コンビニ払い】
2.2.2.1. 支払停止
コンビニ決済センターとの通信を行い取引の支払停止処理を行います。
# File lib/gmo/shop_api.rb 507 def cvs_cancel(options = {}) 508 name = "CvsCancel.idPass" 509 required = [:access_id, :access_pass, :order_id] 510 assert_required_options(required, options) 511 post_request name, options 512 end
2.1.2.1.取引登録
これ以降の決済取引で必要となる取引 ID と取引パスワードの発行を行い、取引を開始します。 ItemCode Tax TdFlag TdTenantName
@return ###
AccessID AccessPass ErrCode ErrInfo
example ###
gmo.entry_tran({
order_id: 100, job_cd: "AUTH", amount: 100
}) {“AccessID”=>“a41d83f1f4c908baeda04e6dc03e300c”, “AccessPass”=>“d72eca02e28c88f98b9341a33ba46d5d”}
# File lib/gmo/shop_api.rb 48 def entry_tran(options = {}) 49 name = "EntryTran.idPass" 50 required = [:order_id, :job_cd] 51 required << :amount if options[:job_cd] && options[:job_cd] != "CHECK" 52 assert_required_options(required, options) 53 post_request name, options 54 end
@params ###
OrderID JobCd Amount ItemCode Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_brandtoken({
order_id: "ord12345", job_cd: "AUTH", item_code: "1000001", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 104 def entry_tran_brandtoken(options = {}) 105 name = "EntryTranBrandtoken.idPass" 106 required = [:order_id, :job_cd, :amount] 107 assert_required_options(required, options) 108 post_request name, options 109 end
【コンビニ払い】
2.1.2.1. 取引登録 これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
# File lib/gmo/shop_api.rb 59 def entry_tran_cvs(options = {}) 60 name = "EntryTranCvs.idPass" 61 required = [:order_id, :amount] 62 assert_required_options(required, options) 63 post_request name, options 64 end
@params ###
OrderID JobCd Amount ItemCode Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_docomo({
order_id: "ord12345", job_cd: "AUTH", item_code: "1000001", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 154 def entry_tran_docomo(options = {}) 155 name = "EntryTranDocomo.idPass" 156 required = [:order_id, :job_cd, :amount] 157 assert_required_options(required, options) 158 post_request name, options 159 end
【LINE Pay決済】
20.1.2.1. 取引登録 これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
# File lib/gmo/shop_api.rb 79 def entry_tran_linepay(options = {}) 80 name = "EntryTranLinepay.idPass" 81 required = [:order_id, :job_cd, :amount] 82 assert_required_options(required, options) 83 post_request name, options 84 end
【Pay-easy決済】
5.1.2.1. 取引登録 これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
# File lib/gmo/shop_api.rb 69 def entry_tran_pay_easy(options = {}) 70 name = "EntryTranPayEasy.idPass" 71 required = [:order_id, :amount] 72 assert_required_options(required, options) 73 post_request name, options 74 end
@params ###
OrderID JobCd Amount ItemCode Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_rakuten_id({
order_id: "ord12345", job_cd: "AUTH", item_code: "1000001", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 129 def entry_tran_rakuten_id(options = {}) 130 name = "EntryTranRakutenId.idPass" 131 required = [:order_id, :job_cd, :amount] 132 assert_required_options(required, options) 133 post_request name, options 134 end
2.2.2.2.決済実行
指定されたサイトに会員を登録します。 return ACS OrderID Forward Method PayTimes Approve TranID TranDate CheckString ClientField1 ClientField2 ClientField3
@return ###
ACS OrderID Forward Method PayTimes Approve TranID CheckString ClientField1 ClientField2 ClientField3
example ###
gmo.exec_tran({
order_id: 100, access_id: "a41d83f1f4c908baeda04e6dc03e300c", access_pass: "d72eca02e28c88f98b9341a33ba46d5d", method: 1, pay_times: 1, card_no: "4111111111111111", expire: "1405", #format YYMM client_field_1: "client_field1"
}) {“ACS”=>“0”, “OrderID”=>“100”, “Forward”=>“2a99662”, “Method”=>“1”, “PayTimes”=>“”, “Approve”=>“6294780”, “TranID”=>“1302160543111111111111192829”, “TranDate”=>“20130216054346”, “CheckString”=>“3e455a2168fefc90dbb7db7ef7b0fe82”, “ClientField1”=>“client_field1”, “ClientField2”=>“”, “ClientField3”=>“”}
# File lib/gmo/shop_api.rb 200 def exec_tran(options = {}) 201 name = "ExecTran.idPass" 202 if options[:client_field_1] || options[:client_field_2] || options[:client_field_3] 203 options[:client_field_flg] = "1" 204 else 205 options[:client_field_flg] = "0" 206 end 207 options[:device_category] = "0" 208 209 # args = { 210 # "AccessID" => options[:access_id], 211 # "AccessPass" => options[:access_pass], 212 # "OrderID" => options[:order_id], 213 # "Method" => options[:method], 214 # "PayTimes" => options[:pay_times], 215 # "CardNo" => options[:card_no], 216 # "Expire" => options[:expire], 217 # "HttpAccept" => options[:http_accept], 218 # "HttpUserAgent" => options[:http_ua], 219 # "DeviceCategory" => "0", 220 # "ClientField1" => options[:client_field_1], 221 # "ClientField2" => options[:client_field_2], 222 # "ClientField3" => options[:client_field_3], 223 # "ClientFieldFlag" => client_field_flg 224 # } 225 if options[:token].nil? 226 required = [:access_id, :access_pass, :order_id, :card_no, :expire] 227 else 228 required = [:access_id, :access_pass, :token] 229 end 230 assert_required_options(required, options) 231 post_request name, options 232 end
@params ###
AccessID AccessPass OrderID TokenType Token MemberID SeqMode TokenSeq ClientField1 ClientField2 ClientField3
@return ###
Status OrderID Forward Approve TranID TranDate ClientField1 ClientField2 ClientField3
example ###
gmo.exec_tran_brandtoken({
order_id: "597ae8c36120b23a3c00014e", access_id: "139f8ec33a07c55f406937c52ce4473d", access_pass: "2689b204d2c17192fa35f9269fa7e744", token_type: :apple_pay, token: <Base64 encoded payment data>, seq_mode: "1", token_seq: 1001, client_field_1: "Custom field value 1", client_field_2: "Custom field value 2", client_field_3: "Custom field value 3"
})
> {“Status”=>“CAPTURE”, “OrderID”=>“597ae8c36120b23a3c00014e”, “Forward”=>“2a99663”, “Approve”=>“5487394”, “TranID”=>“1707281634111111111111771216”, “TranDate”=>“20170728163453”, “ClientField1”=>“Custom field value 1”, “ClientField2”=>“Custom field value 2”, “ClientField3”=>“Custom field value 3”}¶ ↑
# File lib/gmo/shop_api.rb 325 def exec_tran_brandtoken(options = {}) 326 name = "ExecTranBrandtoken.idPass" 327 options[:token_type] = GMO::Const::TOKEN_TYPES_MAP[options[:token_type]] 328 required = [:access_id, :access_pass, :order_id] 329 assert_required_options(required, options) 330 post_request name, options 331 end
【コンビニ払い】 2.1.2.2. 決済実行 お客様が入力した情報で後続の決済センターと通信を行い決済を実施し、結果を返します。
# File lib/gmo/shop_api.rb 245 def exec_tran_cvs(options = {}) 246 name = "ExecTranCvs.idPass" 247 required = [:access_id, :access_pass, :order_id, :convenience, :customer_name, :customer_kana, :tel_no, :receipts_disp_11, :receipts_disp_12, :receipts_disp_13] 248 assert_required_options(required, options) 249 post_request name, options 250 end
【ドコモ払い決済】 18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 282 def exec_tran_docomo(options = {}) 283 name = "ExecTranDocomo.idPass" 284 required = [:access_id, :access_pass, :order_id] 285 assert_required_options(required, options) 286 post_request name, options 287 end
【LINE Pay決済】 20.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 264 def exec_tran_linepay(options = {}) 265 name = "ExecTranLinepay.idPass" 266 required = [:access_id, :access_pass, :order_id, :ret_url, :error_rcv_url, :product_name] 267 assert_required_options(required, options) 268 post_request name, options 269 end
【Pay-easy決済】 5.1.2.2. 決済実行 お客様が入力した情報で後続の決済センターと通信を行い決済を実施し、結果を返します。
# File lib/gmo/shop_api.rb 255 def exec_tran_pay_easy(options = {}) 256 name = "ExecTranPayEasy.idPass" 257 required = [:access_id, :access_pass, :order_id, :customer_name, :customer_kana, :tel_no, :receipts_disp_11, :receipts_disp_12, :receipts_disp_13] 258 assert_required_options(required, options) 259 post_request name, options 260 end
【楽天ペイ決済】 18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 273 def exec_tran_rakuten_id(options = {}) 274 name = "ExecTranRakutenId.idPass" 275 required = [:access_id, :access_pass, :order_id] 276 assert_required_options(required, options) 277 post_request name, options 278 end
@params ###
AccessID AccessPass OrderID Amount Tax
@return ###
AccessID AccessPass Status Forward Approve TranID TranDate
example ###
gmo.refund_tran_brandtoken({
access_id: "139f8ec33a07c55f406937c52ce4473d", access_pass: "2689b204d2c17192fa35f9269fa7e744", order_id: "597ae8c36120b23a3c00014e", amount: 1000, tax: "0001001"
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”, “Status”=>“RETURN”, “Forward”=>“2a99663”, “Approve”=>“5537883”, “TranID”=>“1707311620111111111111771220”, “TranDate”=>“20170731162256”}¶ ↑
# File lib/gmo/shop_api.rb 497 def refund_tran_brandtoken(options = {}) 498 name = "RefundTranBrandtoken.idPass" 499 required = [:access_id, :access_pass, :order_id, :amount] 500 assert_required_options(required, options) 501 post_request name, options 502 end
@params ###
AccessID AccessPass OrderID Amount Tax
@return ###
AccessID AccessPass Status Forward Approve TranID TranDate
example ###
gmo.sales_tran_brandtoken({
access_id: "139f8ec33a07c55f406937c52ce4473d", access_pass: "2689b204d2c17192fa35f9269fa7e744", order_id: "597ae8c36120b23a3c00014e", amount: 1000, tax: "0001001"
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”, “Status”=>“SALES”, “Forward”=>“2a99663”, “Approve”=>“5537883”, “TranID”=>“1707311620111111111111771220”, “TranDate”=>“20170731162256”}¶ ↑
# File lib/gmo/shop_api.rb 467 def sales_tran_brandtoken(options = {}) 468 name = "SalesTranBrandtoken.idPass" 469 required = [:access_id, :access_pass, :order_id, :amount] 470 assert_required_options(required, options) 471 post_request name, options 472 end
2.16.2.1.取引状態参照
指定したオーダーID の取引情報を取得します。
# File lib/gmo/shop_api.rb 516 def search_trade(options = {}) 517 name = "SearchTrade.idPass" 518 required = [:order_id] 519 assert_required_options(required, options) 520 post_request name, options 521 end
13.1.2.1.取引状態参照 指定したオーダーIDの取引情報を取得します。
@params ###
OrderID PayType
@return ###
OrderID Status ProcessDate JobCd AccessID AccessPass ItemCode Amount Tax SiteID MemberID CardNoToken Expire Method PayTimes Forward TranID Approve ClientField1 ClientField2 ClientField3 PayType
example ###
gmo.search_trade_multi({
order_id: '598066176120b2235300020b', pay_type: 27
})
> {“OrderID”=>“598066176120b2235300020b”, “Status”=>“CAPTURE”, “ProcessDate”=>“20170801202929”, “JobCd”=>“CAPTURE”, “AccessID”=>“228fc5bc02da46943300c12706d325a2”, “AccessPass”=>“090a50ec2f77d92184a18018f07906e5”, “ItemCode”=>“0000990”, “Amount”=>“557”, “Tax”=>“0”, “SiteID”=>“”, “MemberID”=>“”, “CardNoToken”=>“************1111”, “Expire”=>“2212”, “Method”=>“1”, “PayTimes”=>“”, “Forward”=>“2a99663”, “TranID”=>“1708012029111111111111771228”, “Approve”=>“5689128”, “ClientField1”=>“”, “ClientField2”=>“”, “ClientField3”=>“”, “PayType”=>“27”}¶ ↑
# File lib/gmo/shop_api.rb 557 def search_trade_multi(options = {}) 558 name = "SearchTradeMulti.idPass" 559 required = [:order_id, :pay_type] 560 assert_required_options(required, options) 561 post_request name, options 562 end
2.2.2.4 認証後決済実行
# File lib/gmo/shop_api.rb 235 def secure_tran(options = {}) 236 name = "SecureTran.idPass" 237 required = [:pa_res, :md] 238 assert_required_options(required, options) 239 post_request name, options 240 end
@params ###
AccessID AccessPass OrderID
@return ###
AccessID AccessPass Status Forward Approve TranID TranDate
example ###
gmo.void_tran_brandtoken({
access_id: "139f8ec33a07c55f406937c52ce4473d", access_pass: "2689b204d2c17192fa35f9269fa7e744", order_id: "597ae8c36120b23a3c00014e"
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”, “Status”=>“VOID”, “Forward”=>“2a99663”, “Approve”=>“5537590”, “TranID”=>“1707311610111111111111771219”, “TranDate”=>“20170731161007”}¶ ↑
# File lib/gmo/shop_api.rb 437 def void_tran_brandtoken(options = {}) 438 name = "VoidTranBrandtoken.idPass" 439 required = [:access_id, :access_pass, :order_id] 440 assert_required_options(required, options) 441 post_request name, options 442 end
Private Instance Methods
# File lib/gmo/shop_api.rb 566 def api_call(name, args = {}, verb = "post", options = {}) 567 args.merge!({ "ShopID" => @shop_id, "ShopPass" => @shop_pass }) 568 api(name, args, verb, options) do |response| 569 if response.is_a?(Hash) && !response["ErrInfo"].nil? 570 raise APIError.new(response, locale) 571 end 572 end 573 end