Module: WxPay::Service
- Defined in:
- lib/wx_pay/service.rb
Constant Summary collapse
- GATEWAY_URL =
'https://api.mch.weixin.qq.com'.freeze
- INVOKE_UNIFIEDORDER_REQUIRED_FIELDS =
%i(body out_trade_no total_fee spbill_create_ip notify_url trade_type)
- GENERATE_APP_PAY_REQ_REQUIRED_FIELDS =
%i(prepayid noncestr)
- INVOKE_REFUND_REQUIRED_FIELDS =
%i(transaction_id out_trade_no out_refund_no total_fee refund_fee cert_path)
- INVOKE_REDPACK_FIELDS =
%i(mch_billno mch_id wxappid send_name re_openid total_amount total_num wishing client_ip act_name remark key cert_path)
- INVOKE_QUERY_REDPACK_FIELDS =
%i(mch_billno mch_id appid bill_type key cert_path key)
- INVOKE_GROUPREDPACK_FIELDS =
%i(mch_billno mch_id wxappid send_name re_openid total_amount total_num wishing act_name remark key amt_type cert_path)
Class Method Summary collapse
-
.close_order(params) {|r| ... } ⇒ Object
out_trade_no.
- .generate_app_pay_req(params) ⇒ Object
- .invoke_refund(params) {|r| ... } ⇒ Object
- .invoke_unifiedorder(params) {|r| ... } ⇒ Object
-
.query_order(params) {|r| ... } ⇒ Object
查询订单 transaction_id 与 out_trade_no 二选一.
- .query_redpack(params) {|r| ... } ⇒ Object
- .send_groupredpack(params) {|r| ... } ⇒ Object
- .send_redpack(params) {|r| ... } ⇒ Object
Class Method Details
.close_order(params) {|r| ... } ⇒ Object
out_trade_no
47 48 49 50 51 52 53 54 55 |
# File 'lib/wx_pay/service.rb', line 47 def self.close_order(params) params = { appid: WxPay.appid, mch_id: WxPay.mch_id }.merge(params) r = invoke_remote("#{GATEWAY_URL}/pay/closeorder", params) yield(r) if block_given? r end |
.generate_app_pay_req(params) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/wx_pay/service.rb', line 21 def self.generate_app_pay_req(params) params = { appid: WxPay.appid, partnerid: WxPay.mch_id, package: 'Sign=WXPay', timestamp: Time.now.to_i.to_s }.merge(params) (params, GENERATE_APP_PAY_REQ_REQUIRED_FIELDS) params[:sign] = WxPay::Sign.generate(params) params end |
.invoke_refund(params) {|r| ... } ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/wx_pay/service.rb', line 34 def self.invoke_refund(params) params = { appid: WxPay.appid, mch_id: WxPay.mch_id, op_user_id: WxPay.mch_id }.merge(params) (params, INVOKE_REFUND_REQUIRED_FIELDS) r = invoke_remote("#{GATEWAY_URL}/secapi/pay/refund", params, true) yield(r) if block_given? r end |
.invoke_unifiedorder(params) {|r| ... } ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/wx_pay/service.rb', line 9 def self.invoke_unifiedorder(params) params = { appid: WxPay.appid, mch_id: WxPay.mch_id }.merge(params) (params, INVOKE_UNIFIEDORDER_REQUIRED_FIELDS) r = invoke_remote("#{GATEWAY_URL}/pay/unifiedorder", params) yield r if block_given? r end |
.query_order(params) {|r| ... } ⇒ Object
查询订单 transaction_id 与 out_trade_no 二选一
59 60 61 62 63 64 65 66 67 |
# File 'lib/wx_pay/service.rb', line 59 def self.query_order(params) params = { appid: WxPay.appid, mch_id: WxPay.mch_id }.merge(params) r = invoke_remote("#{GATEWAY_URL}/pay/orderquery", params) yield(r) if block_given? r end |
.query_redpack(params) {|r| ... } ⇒ Object
82 83 84 85 86 87 |
# File 'lib/wx_pay/service.rb', line 82 def self.query_redpack(params) (params, INVOKE_QUERY_REDPACK_FIELDS) r = invoke_remote("#{GATEWAY_URL}/mmpaymkttransfers/gethbinfo", params, true) yield(r) if block_given? r end |
.send_groupredpack(params) {|r| ... } ⇒ Object
92 93 94 95 96 97 |
# File 'lib/wx_pay/service.rb', line 92 def self.send_groupredpack(params) (params, INVOKE_GROUPREDPACK_FIELDS) r = invoke_remote("#{GATEWAY_URL}/mmpaymkttransfers/sendgroupredpack", params, true) yield(r) if block_given? r end |
.send_redpack(params) {|r| ... } ⇒ Object
72 73 74 75 76 77 |
# File 'lib/wx_pay/service.rb', line 72 def self.send_redpack(params) (params, INVOKE_REDPACK_FIELDS) r = invoke_remote("#{GATEWAY_URL}/mmpaymkttransfers/sendredpack", params, true) yield(r) if block_given? r end |