module Veritrans::Api
Public Instance Methods
approve(payment_id, options = {})
click to toggle source
POST /v2/{id}/approve Docs api-docs.midtrans.com/#approve-transaction
# File lib/veritrans/api.rb, line 74 def approve(payment_id, options = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/approve", options) end
cancel(payment_id, options = {})
click to toggle source
POST /v2/{id}/cancel Docs api-docs.midtrans.com/#cancel-transaction
# File lib/veritrans/api.rb, line 64 def cancel(payment_id, options = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/cancel", options) end
capture(payment_id, gross_amount, options = {})
click to toggle source
POST /v2/capture Docs api-docs.midtrans.com/#capture-transaction
# File lib/veritrans/api.rb, line 104 def capture(payment_id, gross_amount, options = {}) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end post(config.api_host + "/v2/capture", options.merge(transaction_id: payment_id, gross_amount: gross_amount)) end
charge(payment_type, data = nil)
click to toggle source
POST /v2/charge { payment_type: “credit_card” } Docs api-docs.midtrans.com/#charge-features
Example: Veritrans.charge
(
payment_type: "credit_card", credit_card: { token_id: "<token from client>" }, transaction_details: { order_id: "order_123", gross_amount: 100_000 }
)
# File lib/veritrans/api.rb, line 20 def charge(payment_type, data = nil) if payment_type.kind_of?(Hash) && data.nil? data = payment_type payment_type = nil end data = data.deep_symbolize_keys if data.respond_to?(:deep_symbolize_keys) data[:payment_type] = payment_type if payment_type if data.has_key?(:payment_options) data[payment_type.to_sym] = data.delete(:payment_options) end # Rename keys: # payment -> transaction_details # transaction -> transaction_details # items -> item_details # customer -> customer_details data[:transaction_details] = data.delete(:payment) if data[:payment] data[:transaction_details] = data.delete(:transaction) if data[:transaction] data[:item_details] = data.delete(:items) if data[:items] data[:customer_details] = data.delete(:customer) if data[:customer] request_with_logging(:post, config.api_host + "/v2/charge", data) end
create_snap_token(options = {})
click to toggle source
POST app.sandbox.midtrans.com/snap/v1/transactions
# File lib/veritrans/api.rb, line 54 def create_snap_token(options = {}) result = request_with_logging(:post, config.api_host.sub('//api.', '//app.') + "/snap/v1/transactions", options) Veritrans::SnapResult.new(result.response, result.url, result.request_options, result.time) end
Also aliased as: create_widget_token, create_snap_redirect_url
create_vtlink(data)
click to toggle source
POST /v2/charge { payment_type: “vtlink” }
# File lib/veritrans/api.rb, line 133 def create_vtlink(data) data = data.dup data[:payment_type] = "vtlink" request_with_logging(:post, config.api_host + "/v2/charge", data) end
delete_vtlink(id, options)
click to toggle source
DELETE /v2/vtlink/{id}
# File lib/veritrans/api.rb, line 140 def delete_vtlink(id, options) request_with_logging(:delete, config.api_host + "/v2/vtlink/#{URI.escape(id)}", options) end
deny(payment_id, options = {})
click to toggle source
POST /v2/{id}/deny Docs api-docs.midtrans.com/#deny-transaction
# File lib/veritrans/api.rb, line 114 def deny(payment_id, options = {}) if !payment_id || payment_id.to_s == '' raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{ERB::Util.url_encode(payment_id)}/deny", options) end
expire(payment_id)
click to toggle source
POST /v2/{id}/expire Docs api-docs.midtrans.com/#expire-transaction
# File lib/veritrans/api.rb, line 124 def expire(payment_id) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{URI.escape(payment_id)}/expire", nil) end
inquiry_points(token_id)
click to toggle source
GET /v2/point_inquiry/{token_id}
# File lib/veritrans/api.rb, line 145 def inquiry_points(token_id) if token_id == nil || token_id.to_s == "" raise ArgumentError, "parameter token_id can not be bank" end request_with_logging(:get, config.api_host + "/v2/point_inquiry/#{token_id}", {}) end
Also aliased as: point_inquiry
refund(payment_id, options = {})
click to toggle source
POST /v2/{id}/refund Docs api-docs.midtrans.com/#refund-transaction
# File lib/veritrans/api.rb, line 84 def refund(payment_id, options = {}) if !payment_id || payment_id.to_s == '' raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end request_with_logging(:post, config.api_host + "/v2/#{ERB::Util.url_encode(payment_id)}/refund", options) end
status(payment_id)
click to toggle source
GET /v2/{id}/status Docs api-docs.midtrans.com/#get-status-transaction
# File lib/veritrans/api.rb, line 94 def status(payment_id) if !payment_id || payment_id.to_s == "" raise ArgumentError, "parameter payment_id can not be blank (got #{payment_id.class} : #{payment_id.inspect})" end get(config.api_host + "/v2/#{URI.escape(payment_id)}/status") end
test_token(options = {})
click to toggle source
# File lib/veritrans/api.rb, line 48 def test_token(options = {}) options[:client_key] = config.client_key request_with_logging(:get, config.api_host + '/v2/token', options).token_id end