4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/my_alipay/sign.rb', line 4
def self.generate(params, options = {})
sign_type = options[:sign_type] || MyAlipay.sign_type
params[:biz_content] = JSON.generate(params[:biz_content],ascii_only: true)
params.merge!({
app_id: MyAlipay.app_id,
charset: 'UTF-8',
sign_type: 'RSA2',
timestamp: Time.now.strftime('%Y-%m-%d %H:%M:%S'),
version: '1.0'
})
hash_str = params.stringify_keys
sign_str = MyAlipay::Utils.params_to_string hash_str
case sign_type
when 'RSA2'
sign = Rsa2.sign(MyAlipay.app_private_key, sign_str)
when 'MD5'
sign = 'MD5'
else
raise ArgumentError, "invalid sign_type #{sign_type}, allow value: 'MD5', 'RSA2'"
end
return sign
end
|