Commit 79784bf1386eacc5c756b2c4f403d64f060c9e88

Authored by Su Yijia
1 parent ee0099fd
Exists in master

add invoke reverse

Showing 1 changed file with 27 additions and 0 deletions   Show diff stats
lib/wx_pay/service.rb
... ... @@ -66,6 +66,33 @@ module WxPay
66 66 r
67 67 end
68 68  
  69 + INVOKE_REVERSE_REQUIRED_FIELDS = %i(out_trade_no)
  70 + def self.invoke_reverse(params)
  71 + params = {
  72 + appid: WxPay.appid,
  73 + mch_id: WxPay.mch_id,
  74 + nonce_str: SecureRandom.uuid.tr('-', '')
  75 + }.merge(params)
  76 +
  77 + check_required_options(params, INVOKE_REVERSE_REQUIRED_FIELDS)
  78 +
  79 + # 微信退款需要双向证书
  80 + # https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4
  81 + # https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
  82 +
  83 + WxPay.extra_rest_client_options = {
  84 + ssl_client_cert: WxPay.apiclient_cert.certificate,
  85 + ssl_client_key: WxPay.apiclient_cert.key,
  86 + verify_ssl: OpenSSL::SSL::VERIFY_NONE
  87 + }
  88 +
  89 + r = invoke_remote "#{GATEWAY_URL}/secapi/pay/reverse", make_payload(params)
  90 +
  91 + yield(r) if block_given?
  92 +
  93 + r
  94 + end
  95 +
69 96  
70 97 private
71 98  
... ...