From 519aa8f5fe0fe23594f65c9e274eb71de0f636f3 Mon Sep 17 00:00:00 2001 From: yanpz Date: Sat, 14 Mar 2020 09:57:48 +0800 Subject: [PATCH] support sha256 verify --- lib/wx_pay/sign.rb | 3 ++- test/wx_pay/sign_test.rb | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/wx_pay/sign.rb b/lib/wx_pay/sign.rb index 6d9aee3..34e508c 100644 --- a/lib/wx_pay/sign.rb +++ b/lib/wx_pay/sign.rb @@ -36,7 +36,8 @@ module WxPay params["key"] = options[:key] if options[:key] sign = params.delete('sign') || params.delete(:sign) - generate(params) == sign + + generate(params, options[:sign_type] || SIGN_TYPE_MD5) == sign end end end diff --git a/test/wx_pay/sign_test.rb b/test/wx_pay/sign_test.rb index b9afe06..dc6736b 100644 --- a/test/wx_pay/sign_test.rb +++ b/test/wx_pay/sign_test.rb @@ -44,4 +44,10 @@ class WxPay::SignTest < MiniTest::Test assert_equal "1454C32E885B8D9E4A05E976D1C45B88", WxPay::Sign.generate(@params) end + + def test_verify_sign_when_use_hmac_sha256 + opts = { key: "key", sign_type: WxPay::Sign::SIGN_TYPE_HMAC_SHA256 } + + assert WxPay::Sign.verify?(@params.merge(:sign => @sign_hmac_sha256), opts) + end end -- libgit2 0.21.0