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 487 def alter_tran(options = {}) 488 name = "AlterTran.idPass" 489 required = [:access_id, :access_pass, :job_cd] 490 assert_required_options(required, options) 491 post_request name, options 492 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 510 def change_tran(options = {}) 511 name = "ChangeTran.idPass" 512 required = [:access_id, :access_pass, :job_cd, :amount] 513 assert_required_options(required, options) 514 post_request name, options 515 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 541 def change_tran_brandtoken(options = {}) 542 name = "ChangeTranBrandtoken.idPass" 543 required = [:access_id, :access_pass, :order_id, :job_cd, :amount] 544 assert_required_options(required, options) 545 post_request name, options 546 end
【コンビニ払い】
2.2.2.1. 支払停止
コンビニ決済センターとの通信を行い取引の支払停止処理を行います。
# File lib/gmo/shop_api.rb 637 def cvs_cancel(options = {}) 638 name = "CvsCancel.idPass" 639 required = [:access_id, :access_pass, :order_id] 640 assert_required_options(required, options) 641 post_request name, options 642 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 124 def entry_tran_brandtoken(options = {}) 125 name = "EntryTranBrandtoken.idPass" 126 required = [:order_id, :job_cd, :amount] 127 assert_required_options(required, options) 128 post_request name, options 129 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 174 def entry_tran_docomo(options = {}) 175 name = "EntryTranDocomo.idPass" 176 required = [:order_id, :job_cd, :amount] 177 assert_required_options(required, options) 178 post_request name, options 179 end
@params ###
OrderID Amount Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_edy({
order_id: "ord12345", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 237 def entry_tran_edy(options = {}) 238 name = "EntryTranEdy.idPass" 239 required = [:order_id, :amount] 240 assert_required_options(required, options) 241 post_request name, options 242 end
【銀行振込(バーチャル口座 あおぞら)】
取引登録 オーダーIDを指定して取引を登録します。
# File lib/gmo/shop_api.rb 89 def entry_tran_ganb(options = {}) 90 name = "EntryTranGANB.idPass" 91 required = [:order_id, :amount] 92 assert_required_options(required, options) 93 post_request name, options 94 end
【LINE Pay決済】
20.1.2.1. 取引登録 これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
# File lib/gmo/shop_api.rb 99 def entry_tran_linepay(options = {}) 100 name = "EntryTranLinepay.idPass" 101 required = [:order_id, :job_cd, :amount] 102 assert_required_options(required, options) 103 post_request name, options 104 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
【PayPal決済】
取引登録 これ以降の決済取引で必要となる取引IDと取引パスワードの発行を行い、取引を開始します。
# File lib/gmo/shop_api.rb 79 def entry_tran_paypal(options = {}) 80 name = "EntryTranPaypal.idPass" 81 required = [:order_id, :job_cd, :amount] 82 assert_required_options(required, options) 83 post_request name, options 84 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 149 def entry_tran_rakuten_id(options = {}) 150 name = "EntryTranRakutenId.idPass" 151 required = [:order_id, :job_cd, :amount] 152 assert_required_options(required, options) 153 post_request name, options 154 end
@params ###
OrderID Amount Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_suica({
order_id: "ord12345", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 216 def entry_tran_suica(options = {}) 217 name = "EntryTranSuica.idPass" 218 required = [:order_id, :amount] 219 assert_required_options(required, options) 220 post_request name, options 221 end
@params ###
OrderID Amount Tax
@return ###
AccessID AccessPass
example ###
gmo.entry_tran_virtualaccount({
order_id: "ord12345", tax: "0001001", amount: 100
})
> {“AccessID”=>“139f8ec33a07c55f406937c52ce4473d”, “AccessPass”=>“2689b204d2c17192fa35f9269fa7e744”}¶ ↑
# File lib/gmo/shop_api.rb 195 def entry_tran_virtualaccount(options = {}) 196 name = "EntryTranVirtualaccount.idPass" 197 required = [:order_id, :amount] 198 assert_required_options(required, options) 199 post_request name, options 200 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 283 def exec_tran(options = {}) 284 name = "ExecTran.idPass" 285 if options[:client_field_1] || options[:client_field_2] || options[:client_field_3] 286 options[:client_field_flg] = "1" 287 else 288 options[:client_field_flg] = "0" 289 end 290 options[:device_category] = "0" 291 292 # args = { 293 # "AccessID" => options[:access_id], 294 # "AccessPass" => options[:access_pass], 295 # "OrderID" => options[:order_id], 296 # "Method" => options[:method], 297 # "PayTimes" => options[:pay_times], 298 # "CardNo" => options[:card_no], 299 # "Expire" => options[:expire], 300 # "HttpAccept" => options[:http_accept], 301 # "HttpUserAgent" => options[:http_ua], 302 # "DeviceCategory" => "0", 303 # "ClientField1" => options[:client_field_1], 304 # "ClientField2" => options[:client_field_2], 305 # "ClientField3" => options[:client_field_3], 306 # "ClientFieldFlag" => client_field_flg 307 # } 308 if options[:token].nil? 309 required = [:access_id, :access_pass, :order_id, :card_no, :expire] 310 else 311 required = [:access_id, :access_pass, :token] 312 end 313 assert_required_options(required, options) 314 post_request name, options 315 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 455 def exec_tran_brandtoken(options = {}) 456 name = "ExecTranBrandtoken.idPass" 457 options[:token_type] = GMO::Const::TOKEN_TYPES_MAP[options[:token_type]] 458 required = [:access_id, :access_pass, :order_id] 459 assert_required_options(required, options) 460 post_request name, options 461 end
【コンビニ払い】2.1.2.2. 決済実行お客様が入力した情報で後続の決済センターと通信を行い決済を実施し、結果を返します。
# File lib/gmo/shop_api.rb 328 def exec_tran_cvs(options = {}) 329 name = "ExecTranCvs.idPass" 330 required = [:access_id, :access_pass, :order_id, :convenience, :customer_name, :customer_kana, :tel_no, :receipts_disp_11, :receipts_disp_12, :receipts_disp_13] 331 assert_required_options(required, options) 332 post_request name, options 333 end
【ドコモ払い決済】18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 385 def exec_tran_docomo(options = {}) 386 name = "ExecTranDocomo.idPass" 387 required = [:access_id, :access_pass, :order_id] 388 assert_required_options(required, options) 389 post_request name, options 390 end
【楽天Edy決済】18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 412 def exec_tran_edy(options = {}) 413 name = "ExecTranEdy.idPass" 414 required = [:access_id, :access_pass, :order_id, :mail_address] 415 assert_required_options(required, options) 416 post_request name, options 417 end
【銀行振込(バーチャル口座 あおぞら)】決済実行登録された取引に対してバーチャル口座を発行します。
# File lib/gmo/shop_api.rb 358 def exec_tran_ganb(options = {}) 359 name = "ExecTranGANB.idPass" 360 required = [:access_id, :access_pass, :order_id] 361 assert_required_options(required, options) 362 post_request name, options 363 end
【LINE Pay決済】20.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 367 def exec_tran_linepay(options = {}) 368 name = "ExecTranLinepay.idPass" 369 required = [:access_id, :access_pass, :order_id, :ret_url, :error_rcv_url, :product_name] 370 assert_required_options(required, options) 371 post_request name, options 372 end
【Pay-easy決済】5.1.2.2. 決済実行お客様が入力した情報で後続の決済センターと通信を行い決済を実施し、結果を返します。
# File lib/gmo/shop_api.rb 338 def exec_tran_pay_easy(options = {}) 339 name = "ExecTranPayEasy.idPass" 340 required = [:access_id, :access_pass, :order_id, :customer_name, :customer_kana, :tel_no, :receipts_disp_11, :receipts_disp_12, :receipts_disp_13] 341 assert_required_options(required, options) 342 post_request name, options 343 end
【PayPal決済】決済実行PayPalと通信を行い決済要求結果を返します。
# File lib/gmo/shop_api.rb 348 def exec_tran_paypal(options = {}) 349 name = "ExecTranPaypal.idPass" 350 required = [:access_id, :access_pass, :order_id, :item_name, :redirect_url] 351 assert_required_options(required, options) 352 post_request name, options 353 end
【楽天ペイ決済】18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 376 def exec_tran_rakuten_id(options = {}) 377 name = "ExecTranRakutenId.idPass" 378 required = [:access_id, :access_pass, :order_id] 379 assert_required_options(required, options) 380 post_request name, options 381 end
【モバイルSuica決済】18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 403 def exec_tran_suica(options = {}) 404 name = "ExecTranSuica.idPass" 405 required = [:access_id, :access_pass, :order_id, :item_name, :mail_address] 406 assert_required_options(required, options) 407 post_request name, options 408 end
【銀行振込(バーチャル口座)決済】18.1.2.2. 決済実行
# File lib/gmo/shop_api.rb 394 def exec_tran_virtualaccount(options = {}) 395 name = "ExecTranVirtualaccount.idPass" 396 required = [:access_id, :access_pass, :order_id, :trade_days] 397 assert_required_options(required, options) 398 post_request name, options 399 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 627 def refund_tran_brandtoken(options = {}) 628 name = "RefundTranBrandtoken.idPass" 629 required = [:access_id, :access_pass, :order_id, :amount] 630 assert_required_options(required, options) 631 post_request name, options 632 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 597 def sales_tran_brandtoken(options = {}) 598 name = "SalesTranBrandtoken.idPass" 599 required = [:access_id, :access_pass, :order_id, :amount] 600 assert_required_options(required, options) 601 post_request name, options 602 end
2.16.2.1.取引状態参照
指定したオーダーID の取引情報を取得します。
# File lib/gmo/shop_api.rb 646 def search_trade(options = {}) 647 name = "SearchTrade.idPass" 648 required = [:order_id] 649 assert_required_options(required, options) 650 post_request name, options 651 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 687 def search_trade_multi(options = {}) 688 name = "SearchTradeMulti.idPass" 689 required = [:order_id, :pay_type] 690 assert_required_options(required, options) 691 post_request name, options 692 end
2.2.2.4 認証後決済実行
# File lib/gmo/shop_api.rb 318 def secure_tran(options = {}) 319 name = "SecureTran.idPass" 320 required = [:pa_res, :md] 321 assert_required_options(required, options) 322 post_request name, options 323 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 567 def void_tran_brandtoken(options = {}) 568 name = "VoidTranBrandtoken.idPass" 569 required = [:access_id, :access_pass, :order_id] 570 assert_required_options(required, options) 571 post_request name, options 572 end
Private Instance Methods
# File lib/gmo/shop_api.rb 696 def api_call(name, args = {}, verb = "post", options = {}) 697 args.merge!({ "ShopID" => @shop_id, "ShopPass" => @shop_pass }) 698 api(name, args, verb, options) do |response| 699 if response.is_a?(Hash) && !response["ErrInfo"].nil? 700 raise APIError.new(response, locale) 701 end 702 end 703 end