module GMO::Payment::ShopAPIMethods

Attributes

host[R]
locale[R]
shop_id[R]
shop_pass[R]

Public Class Methods

new(options = {}) click to toggle source
   # 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

alter_tran(options = {}) click to toggle source
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
change_tran(options = {}) click to toggle source
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
change_tran_brandtoken(options = {}) click to toggle source
@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
cvs_cancel(options = {}) click to toggle source

【コンビニ払い】

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
entry_tran(options = {}) click to toggle source
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
entry_tran_brandtoken(options = {}) click to toggle source
@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
entry_tran_cvs(options = {}) click to toggle source

【コンビニ払い】

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
entry_tran_docomo(options = {}) click to toggle source
@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
entry_tran_linepay(options = {}) click to toggle source

【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
entry_tran_pay_easy(options = {}) click to toggle source

【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
entry_tran_rakuten_id(options = {}) click to toggle source
@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
exec_tran(options = {}) click to toggle source
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
exec_tran_brandtoken(options = {}) click to toggle source
@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
exec_tran_cvs(options = {}) click to toggle source

【コンビニ払い】 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
exec_tran_docomo(options = {}) click to toggle source

【ドコモ払い決済】 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
exec_tran_linepay(options = {}) click to toggle source

【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
exec_tran_pay_easy(options = {}) click to toggle source

【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
exec_tran_rakuten_id(options = {}) click to toggle source

【楽天ペイ決済】 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
refund_tran_brandtoken(options = {}) click to toggle source
@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
sales_tran_brandtoken(options = {}) click to toggle source
@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
search_trade(options = {}) click to toggle source
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
search_trade_multi(options = {}) click to toggle source

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
secure_tran(options = {}) click to toggle source

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
void_tran_brandtoken(options = {}) click to toggle source
@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

api_call(name, args = {}, verb = "post", options = {}) click to toggle source
    # 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