Module: Veritrans::Api
- Included in:
- Veritrans
- Defined in:
- lib/veritrans/api.rb
Instance Method Summary collapse
-
#approve(payment_id, options = {}) ⇒ Object
POST /v2/id/approve Docs api-docs.midtrans.com/#approve-transaction.
-
#cancel(payment_id, options = {}) ⇒ Object
POST /v2/id/cancel Docs api-docs.midtrans.com/#cancel-transaction.
-
#capture(payment_id, gross_amount, options = {}) ⇒ Object
POST /v2/capture Docs api-docs.midtrans.com/#capture-transaction.
-
#charge(payment_type, data = nil) ⇒ Object
POST /v2/charge { payment_type: “credit_card” } Docs api-docs.midtrans.com/#charge-features.
-
#create_snap_redirect_url_str(options = {}) ⇒ Object
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning redirect url.
-
#create_snap_token(options = {}) ⇒ Object
(also: #create_widget_token, #create_snap_redirect_url)
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning full API response.
-
#create_snap_token_string(options = {}) ⇒ Object
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning token.
-
#create_subscription(param) ⇒ Object
POST /v1/subscription param create subscription request (more params detail refer to: api-docs.midtrans.com/#create-subscription).
-
#create_vtlink(data) ⇒ Object
POST /v2/charge { payment_type: “vtlink” }.
-
#delete_vtlink(id, options) ⇒ Object
DELETE /v2/vtlink/id.
-
#deny(payment_id, options = {}) ⇒ Object
POST /v2/id/deny Docs api-docs.midtrans.com/#deny-transaction.
-
#disable_subscription(subscription_id) ⇒ Object
POST /v1/subscription/subscription_id/disable disable subscription request (more params detail refer to: api-docs.midtrans.com/#disable-subscription).
-
#enable_subscription(subscription_id) ⇒ Object
POST /v1/subscription/subscription_id/disable enable subscription request (more params detail refer to: api-docs.midtrans.com/#enable-subscription).
-
#expire(payment_id) ⇒ Object
POST /v2/id/expire Docs api-docs.midtrans.com/#expire-transaction.
-
#get_payment_account(account_id) ⇒ Object
GET /v2/pay/account/account_id account_id (more params detail refer to: api-docs.midtrans.com/#get-pay-account).
-
#get_subscription(subscription_id) ⇒ Object
GET /v1/subscription/subscription_id get subscription request (more params detail refer to: api-docs.midtrans.com/#get-subscription).
-
#inquiry_points(token_id) ⇒ Object
(also: #point_inquiry)
GET /v2/point_inquiry/token_id.
-
#link_payment_account(param) ⇒ Object
POST /v2/pay/account param create pay account request (more params detail refer to: api-docs.midtrans.com/#create-pay-account).
-
#refund(payment_id, options = {}) ⇒ Object
POST /v2/id/refund Docs api-docs.midtrans.com/#refund-transaction.
-
#status(payment_id) ⇒ Object
GET /v2/id/status Docs api-docs.midtrans.com/#get-status-transaction.
- #test_token(options = {}) ⇒ Object (also: #create_card_token)
-
#unlink_payment_account(account_id) ⇒ Object
POST /v2/pay/account/account_id/unbind account_id (more params detail refer to: api-docs.midtrans.com/#unbind-pay-account).
-
#update_subscription(subscription_id, param) ⇒ Object
PATCH /v1/subscription/subscription_id update subscription request (more params detail refer to: api-docs.midtrans.com/#update-subscription).
Instance Method Details
#approve(payment_id, options = {}) ⇒ Object
POST /v2/id/approve Docs api-docs.midtrans.com/#approve-transaction
91 92 93 94 95 96 97 |
# File 'lib/veritrans/api.rb', line 91 def approve(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/#{ERB::Util.url_encode(payment_id)}/approve", ) end |
#cancel(payment_id, options = {}) ⇒ Object
POST /v2/id/cancel Docs api-docs.midtrans.com/#cancel-transaction
81 82 83 84 85 86 87 |
# File 'lib/veritrans/api.rb', line 81 def cancel(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/#{ERB::Util.url_encode(payment_id)}/cancel", ) end |
#capture(payment_id, gross_amount, options = {}) ⇒ Object
POST /v2/capture Docs api-docs.midtrans.com/#capture-transaction
121 122 123 124 125 126 127 |
# File 'lib/veritrans/api.rb', line 121 def capture(payment_id, gross_amount, = {}) 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", .merge(transaction_id: payment_id, gross_amount: gross_amount)) end |
#charge(payment_type, data = nil) ⇒ Object
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
}
)
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# 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_redirect_url_str(options = {}) ⇒ Object
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning redirect url
74 75 76 77 |
# File 'lib/veritrans/api.rb', line 74 def create_snap_redirect_url_str( = {}) result = create_snap_token() result.redirect_url end |
#create_snap_token(options = {}) ⇒ Object Also known as: create_widget_token, create_snap_redirect_url
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning full API response
57 58 59 60 |
# File 'lib/veritrans/api.rb', line 57 def create_snap_token( = {}) result = request_with_logging(:post, config.api_host.sub('//api.', '//app.') + "/snap/v1/transactions", ) Veritrans::SnapResult.new(result.response, result.url, result., result.time) end |
#create_snap_token_string(options = {}) ⇒ Object
POST app.sandbox.midtrans.com/snap/v1/transactions Create Snap payment page, with this version returning token
67 68 69 70 |
# File 'lib/veritrans/api.rb', line 67 def create_snap_token_string( = {}) result = create_snap_token() result.token end |
#create_subscription(param) ⇒ Object
POST /v1/subscription param create subscription request (more params detail refer to: api-docs.midtrans.com/#create-subscription)
204 205 206 207 208 209 210 |
# File 'lib/veritrans/api.rb', line 204 def create_subscription(param) if param == nil raise ArgumentError, "parameter subscription cannot be blank" end request_with_logging(:post, config.api_host + "/v1/subscriptions", param) end |
#create_vtlink(data) ⇒ Object
POST /v2/charge { payment_type: “vtlink” }
150 151 152 153 154 |
# File 'lib/veritrans/api.rb', line 150 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) ⇒ Object
DELETE /v2/vtlink/id
157 158 159 |
# File 'lib/veritrans/api.rb', line 157 def delete_vtlink(id, ) request_with_logging(:delete, config.api_host + "/v2/vtlink/#{ERB::Util.url_encode(id)}", ) end |
#deny(payment_id, options = {}) ⇒ Object
POST /v2/id/deny Docs api-docs.midtrans.com/#deny-transaction
131 132 133 134 135 136 137 |
# File 'lib/veritrans/api.rb', line 131 def deny(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/#{ERB::Util.url_encode(payment_id)}/deny", ) end |
#disable_subscription(subscription_id) ⇒ Object
POST /v1/subscription/subscription_id/disable disable subscription request (more params detail refer to: api-docs.midtrans.com/#disable-subscription)
224 225 226 227 228 229 230 |
# File 'lib/veritrans/api.rb', line 224 def disable_subscription(subscription_id) if subscription_id == nil || subscription_id == '' raise ArgumentError, "subscription_id cannot be blank" end request_with_logging(:post, config.api_host + "/v1/subscriptions/#{subscription_id}/disable", {}) end |
#enable_subscription(subscription_id) ⇒ Object
POST /v1/subscription/subscription_id/disable enable subscription request (more params detail refer to: api-docs.midtrans.com/#enable-subscription)
234 235 236 237 238 239 240 |
# File 'lib/veritrans/api.rb', line 234 def enable_subscription(subscription_id) if subscription_id == nil || subscription_id == '' raise ArgumentError, "subscription_id cannot be blank" end request_with_logging(:post, config.api_host + "/v1/subscriptions/#{subscription_id}/enable", {}) end |
#expire(payment_id) ⇒ Object
POST /v2/id/expire Docs api-docs.midtrans.com/#expire-transaction
141 142 143 144 145 146 147 |
# File 'lib/veritrans/api.rb', line 141 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/#{ERB::Util.url_encode(payment_id)}/expire", nil) end |
#get_payment_account(account_id) ⇒ Object
GET /v2/pay/account/account_id account_id (more params detail refer to: api-docs.midtrans.com/#get-pay-account)
184 185 186 187 188 189 190 |
# File 'lib/veritrans/api.rb', line 184 def get_payment_account(account_id) if account_id == nil || account_id == '' raise ArgumentError, "account_id cannot be blank" end request_with_logging(:get, config.api_host + "/v2/pay/account/#{account_id}", {}) end |
#get_subscription(subscription_id) ⇒ Object
GET /v1/subscription/subscription_id get subscription request (more params detail refer to: api-docs.midtrans.com/#get-subscription)
214 215 216 217 218 219 220 |
# File 'lib/veritrans/api.rb', line 214 def get_subscription(subscription_id) if subscription_id == nil || subscription_id == '' raise ArgumentError, "subscription_id cannot be blank" end request_with_logging(:get, config.api_host + "/v1/subscriptions/#{subscription_id}", {}) end |
#inquiry_points(token_id) ⇒ Object Also known as: point_inquiry
GET /v2/point_inquiry/token_id
162 163 164 165 166 167 168 |
# File 'lib/veritrans/api.rb', line 162 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 |
#link_payment_account(param) ⇒ Object
POST /v2/pay/account param create pay account request (more params detail refer to: api-docs.midtrans.com/#create-pay-account)
174 175 176 177 178 179 180 |
# File 'lib/veritrans/api.rb', line 174 def link_payment_account(param) if param == nil raise ArgumentError, "parameter Payment_type gopay cannot be blank" end request_with_logging(:post, config.api_host + "/v2/pay/account", param) end |
#refund(payment_id, options = {}) ⇒ Object
POST /v2/id/refund Docs api-docs.midtrans.com/#refund-transaction
101 102 103 104 105 106 107 |
# File 'lib/veritrans/api.rb', line 101 def refund(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/#{ERB::Util.url_encode(payment_id)}/refund", ) end |
#status(payment_id) ⇒ Object
GET /v2/id/status Docs api-docs.midtrans.com/#get-status-transaction
111 112 113 114 115 116 117 |
# File 'lib/veritrans/api.rb', line 111 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/#{ERB::Util.url_encode(payment_id)}/status") end |
#test_token(options = {}) ⇒ Object Also known as: create_card_token
48 49 50 51 |
# File 'lib/veritrans/api.rb', line 48 def test_token( = {}) [:client_key] = config.client_key request_with_logging(:get, config.api_host + '/v2/token', ) end |
#unlink_payment_account(account_id) ⇒ Object
POST /v2/pay/account/account_id/unbind account_id (more params detail refer to: api-docs.midtrans.com/#unbind-pay-account)
194 195 196 197 198 199 200 |
# File 'lib/veritrans/api.rb', line 194 def unlink_payment_account(account_id) if account_id == nil || account_id == '' raise ArgumentError, "parameter account_id cannot be blank" end request_with_logging(:post, config.api_host + "/v2/pay/account/#{account_id}/unbind", {}) end |
#update_subscription(subscription_id, param) ⇒ Object
PATCH /v1/subscription/subscription_id update subscription request (more params detail refer to: api-docs.midtrans.com/#update-subscription)
244 245 246 247 248 249 250 |
# File 'lib/veritrans/api.rb', line 244 def update_subscription(subscription_id, param) if subscription_id && param == nil || subscription_id && param == '' raise ArgumentError, "subscription_id and param cannot be blank" end request_with_logging(:patch, config.api_host + "/v1/subscriptions/#{subscription_id}", param) end |