From e9cebb691f8905dd6a57da079f7c6fa338cacb75 Mon Sep 17 00:00:00 2001 From: jasl Date: Sun, 17 Jun 2018 00:12:44 +0800 Subject: [PATCH] fix get sandbox key in single usage --- lib/wx_pay.rb | 6 +++++- lib/wx_pay/service.rb | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/wx_pay.rb b/lib/wx_pay.rb index 44d2ee9..783e718 100644 --- a/lib/wx_pay.rb +++ b/lib/wx_pay.rb @@ -11,7 +11,7 @@ module WxPay class<< self attr_accessor :appid, :mch_id, :key, :appsecret, :extra_rest_client_options, :debug_mode - attr_accessor :sandbox_mode, :sandbox_key + attr_accessor :sandbox_mode, :manual_get_sandbox_key attr_reader :apiclient_cert, :apiclient_key def set_apiclient_by_pkcs12(str, pass) @@ -37,5 +37,9 @@ module WxPay def sandbox_mode? @sandbox_mode end + + def manual_get_sandbox_key? + @manual_get_sandbox_key + end end end diff --git a/lib/wx_pay/service.rb b/lib/wx_pay/service.rb index ffd776f..d60973b 100644 --- a/lib/wx_pay/service.rb +++ b/lib/wx_pay/service.rb @@ -458,14 +458,13 @@ module WxPay def make_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) # TODO: Move this out - if WxPay.sandbox_mode? && !params[:key] + if WxPay.sandbox_mode? && !WxPay.manual_get_sandbox_key? r = get_sandbox_signkey if r['return_code'] == WxPay::Result::SUCCESS_FLAG params = params.merge( mch_id: r['mch_id'] || WxPay.mch_id, key: r['sandbox_signkey'] ) - WxPay.sandbox_key = r['sandbox_signkey'] else warn("WxPay Warn: fetch sandbox sign key failed #{r['return_msg']}") end -- libgit2 0.21.0