Module: AlipayGlobal::Sign
- Defined in:
- lib/alipay_global/sign.rb,
lib/alipay_global/sign/dsa.rb,
lib/alipay_global/sign/md5.rb,
lib/alipay_global/sign/rsa.rb
Defined Under Namespace
Class Method Summary collapse
Class Method Details
.generate(params) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/alipay_global/sign.rb', line 5 def self.generate(params) params = Utils.stringify_keys(params) sign_type = AlipayGlobal.sign_type.upcase key = AlipayGlobal.api_secret_key string = params_to_string(params) case sign_type when 'MD5' MD5.sign(string, key) when 'RSA' RSA.sign(string) when 'DSA' DSA.sign(string, key) else raise ArgumentError, "invalid sign_type #{sign_type}, allow value: 'MD5', 'RSA', 'DSA'" end end |
.params_to_string(params) ⇒ Object
43 44 45 |
# File 'lib/alipay_global/sign.rb', line 43 def self.params_to_string(params) params.sort.map { |item| item.join('=') }.join('&') end |
.verify?(params) ⇒ Boolean
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/alipay_global/sign.rb', line 23 def self.verify?(params) params = Utils.stringify_keys(params) sign_type = params.delete('sign_type') signature = params.delete('sign') string = params_to_string(params) case sign_type when 'MD5' key = AlipayGlobal.api_secret_key MD5.verify?(string, key, signature) when 'RSA' RSA.verify?(string, @alipay_rsa_public_key, signature) when 'DSA' DSA.verify?(string, signature) else false end end |