Commit e9cebb691f8905dd6a57da079f7c6fa338cacb75

Authored by jasl
1 parent 62499c52
Exists in master

fix get sandbox key in single usage

Showing 2 changed files with 6 additions and 3 deletions   Show diff stats
@@ -11,7 +11,7 @@ module WxPay @@ -11,7 +11,7 @@ module WxPay
11 11
12 class<< self 12 class<< self
13 attr_accessor :appid, :mch_id, :key, :appsecret, :extra_rest_client_options, :debug_mode 13 attr_accessor :appid, :mch_id, :key, :appsecret, :extra_rest_client_options, :debug_mode
14 - attr_accessor :sandbox_mode, :sandbox_key 14 + attr_accessor :sandbox_mode, :manual_get_sandbox_key
15 attr_reader :apiclient_cert, :apiclient_key 15 attr_reader :apiclient_cert, :apiclient_key
16 16
17 def set_apiclient_by_pkcs12(str, pass) 17 def set_apiclient_by_pkcs12(str, pass)
@@ -37,5 +37,9 @@ module WxPay @@ -37,5 +37,9 @@ module WxPay
37 def sandbox_mode? 37 def sandbox_mode?
38 @sandbox_mode 38 @sandbox_mode
39 end 39 end
  40 +
  41 + def manual_get_sandbox_key?
  42 + @manual_get_sandbox_key
  43 + end
40 end 44 end
41 end 45 end
lib/wx_pay/service.rb
@@ -458,14 +458,13 @@ module WxPay @@ -458,14 +458,13 @@ module WxPay
458 458
459 def make_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) 459 def make_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5)
460 # TODO: Move this out 460 # TODO: Move this out
461 - if WxPay.sandbox_mode? && !params[:key] 461 + if WxPay.sandbox_mode? && !WxPay.manual_get_sandbox_key?
462 r = get_sandbox_signkey 462 r = get_sandbox_signkey
463 if r['return_code'] == WxPay::Result::SUCCESS_FLAG 463 if r['return_code'] == WxPay::Result::SUCCESS_FLAG
464 params = params.merge( 464 params = params.merge(
465 mch_id: r['mch_id'] || WxPay.mch_id, 465 mch_id: r['mch_id'] || WxPay.mch_id,
466 key: r['sandbox_signkey'] 466 key: r['sandbox_signkey']
467 ) 467 )
468 - WxPay.sandbox_key = r['sandbox_signkey']  
469 else 468 else
470 warn("WxPay Warn: fetch sandbox sign key failed #{r['return_msg']}") 469 warn("WxPay Warn: fetch sandbox sign key failed #{r['return_msg']}")
471 end 470 end