Module: Alipay::App::Sign
- Defined in:
- lib/alipay/app/sign.rb
Constant Summary collapse
- ALIPAY_RSA_PUBLIC_KEY =
<<-EOF -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkr IvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsra prwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUr CmZYI/FCEa3/cNMW0QIDAQAB -----END PUBLIC KEY----- EOF
Class Method Summary collapse
- .params_to_encoded_string(params) ⇒ Object
- .params_to_sorted_string(params) ⇒ Object
- .verify?(params) ⇒ Boolean
Class Method Details
.params_to_encoded_string(params) ⇒ Object
34 35 36 |
# File 'lib/alipay/app/sign.rb', line 34 def self.params_to_encoded_string(params) params.sort.map { |key, value| %Q(#{key}=#{ERB::Util.url_encode(value.to_s)}) }.join('&') end |
.params_to_sorted_string(params) ⇒ Object
30 31 32 |
# File 'lib/alipay/app/sign.rb', line 30 def self.params_to_sorted_string(params) params.sort.map { |key, value| %Q(#{key}=#{value.to_s}) }.join('&') end |
.verify?(params) ⇒ Boolean
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/alipay/app/sign.rb', line 15 def self.verify?(params) params = ::Alipay::Utils.stringify_keys(params) sign_type = params.delete('sign_type') sign = params.delete('sign') string = ::Alipay::Sign.params_to_string(params) case sign_type when 'RSA' ::Alipay::Sign::RSA.verify?(ALIPAY_RSA_PUBLIC_KEY, string, sign) else false end end |