Class: DadaExpress::Sign
- Inherits:
-
Object
- Object
- DadaExpress::Sign
- Defined in:
- lib/dada_express/sign.rb
Class Method Summary collapse
Class Method Details
.encode(params) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/dada_express/sign.rb', line 6 def encode(params) # 第一步:将参与签名的参数按照键值(key)进行字典排序 step1 = params.sort.to_h # 第二步:将排序过后的参数,进行key和value字符串拼接 step2 = step1.inject('') {|c, (k, v)| c + k.to_s + v.to_s } # 第三步:将拼接后的字符串首尾加上app_secret秘钥,合成签名字符串 step3 = DadaExpress.configuration.app_secret + step2 + DadaExpress.configuration.app_secret # 第四步:对签名字符串进行MD5加密,生成32位的字符串 step4 = Digest::MD5.hexdigest step3 # 第五步:将签名生成的32位字符串转换为大写 step5 = step4.upcase params.merge({signature: step5}) end |