Class: AllinpayCnp::Response
- Inherits:
-
Object
- Object
- AllinpayCnp::Response
- Defined in:
- lib/allinpay_cnp/response.rb
Constant Summary collapse
- SUCCESS_CODE =
'0000'
Instance Method Summary collapse
- #[](key) ⇒ Object
- #access_order_id ⇒ Object
- #amount ⇒ Object
- #body ⇒ Object
- #card_no ⇒ Object
- #card_orgn ⇒ Object
- #currency ⇒ Object
- #failure? ⇒ Boolean
- #http_success? ⇒ Boolean
-
#initialize(http_response, error: nil, public_key: nil) ⇒ Response
constructor
A new instance of Response.
- #order_id ⇒ Object
- #payment_url ⇒ Object
- #raw_body ⇒ Object
- #refund_amount ⇒ Object
- #result_code ⇒ Object
- #result_desc ⇒ Object
- #sign ⇒ Object
- #status ⇒ Object
- #status_desc ⇒ Object
- #success? ⇒ Boolean
- #to_h ⇒ Object
- #trans_time ⇒ Object
- #valid_signature? ⇒ Boolean
Constructor Details
#initialize(http_response, error: nil, public_key: nil) ⇒ Response
Returns a new instance of Response.
9 10 11 12 13 14 |
# File 'lib/allinpay_cnp/response.rb', line 9 def initialize(http_response, error: nil, public_key: nil) @http_response = http_response @error = error @public_key = public_key @body = nil end |
Instance Method Details
#[](key) ⇒ Object
105 106 107 |
# File 'lib/allinpay_cnp/response.rb', line 105 def [](key) body[key.to_s] end |
#access_order_id ⇒ Object
46 47 48 |
# File 'lib/allinpay_cnp/response.rb', line 46 def access_order_id body['accessOrderId'] end |
#amount ⇒ Object
66 67 68 |
# File 'lib/allinpay_cnp/response.rb', line 66 def amount body['amount'] end |
#body ⇒ Object
30 31 32 |
# File 'lib/allinpay_cnp/response.rb', line 30 def body @body ||= parse_body end |
#card_no ⇒ Object
87 88 89 |
# File 'lib/allinpay_cnp/response.rb', line 87 def card_no body['cardNo'] end |
#card_orgn ⇒ Object
91 92 93 |
# File 'lib/allinpay_cnp/response.rb', line 91 def card_orgn body['cardOrgn'] end |
#currency ⇒ Object
70 71 72 |
# File 'lib/allinpay_cnp/response.rb', line 70 def currency body['currency'] end |
#failure? ⇒ Boolean
26 27 28 |
# File 'lib/allinpay_cnp/response.rb', line 26 def failure? !success? end |
#http_success? ⇒ Boolean
16 17 18 19 20 |
# File 'lib/allinpay_cnp/response.rb', line 16 def http_success? return false if @error @http_response&.success? == true end |
#order_id ⇒ Object
50 51 52 |
# File 'lib/allinpay_cnp/response.rb', line 50 def order_id body['orderId'] end |
#payment_url ⇒ Object
54 55 56 |
# File 'lib/allinpay_cnp/response.rb', line 54 def payment_url body['payUrl'] end |
#raw_body ⇒ Object
34 35 36 |
# File 'lib/allinpay_cnp/response.rb', line 34 def raw_body @http_response&.body end |
#refund_amount ⇒ Object
74 75 76 |
# File 'lib/allinpay_cnp/response.rb', line 74 def refund_amount body['refundAmount'] end |
#result_code ⇒ Object
38 39 40 |
# File 'lib/allinpay_cnp/response.rb', line 38 def result_code body['resultCode'] end |
#result_desc ⇒ Object
42 43 44 |
# File 'lib/allinpay_cnp/response.rb', line 42 def result_desc body['resultDesc'] end |
#sign ⇒ Object
95 96 97 |
# File 'lib/allinpay_cnp/response.rb', line 95 def sign body['sign'] end |
#status ⇒ Object
58 59 60 |
# File 'lib/allinpay_cnp/response.rb', line 58 def status body['status'] end |
#status_desc ⇒ Object
62 63 64 |
# File 'lib/allinpay_cnp/response.rb', line 62 def status_desc body['statusDesc'] end |
#success? ⇒ Boolean
22 23 24 |
# File 'lib/allinpay_cnp/response.rb', line 22 def success? http_success? && result_code == SUCCESS_CODE end |
#to_h ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/allinpay_cnp/response.rb', line 109 def to_h { success: success?, result_code: result_code, result_desc: result_desc, access_order_id: access_order_id, order_id: order_id, payment_url: payment_url, status: status, amount: amount, currency: currency, raw: body } end |
#trans_time ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/allinpay_cnp/response.rb', line 78 def trans_time time_str = body['transTime'] return nil unless time_str Time.strptime(time_str, '%Y%m%d%H%M%S') rescue ArgumentError nil end |