class Baidupay::Client

Attributes

app_key[RW]
deal_id[RW]
private_key[RW]
public_key[RW]

Public Class Methods

new(options) click to toggle source
# File lib/baidupay/client.rb, line 5
def initialize(options)
  options = ::Baidupay::Utils.stringify_keys(options)
  @deal_id = options['deal_id']
  @app_key = options['app_key']
  @public_key = options['public_key']
  @private_key = options['private_key']
end

Public Instance Methods

sign(params) click to toggle source
# File lib/baidupay/client.rb, line 13
def sign(params)
  string = params_to_string(prepare_params(params))
  ::Baidupay::Sign::RSA.sign(private_key, string)
end
verify?(params) click to toggle source
# File lib/baidupay/client.rb, line 18
def verify?(params)
  params = Utils.stringify_keys(params)
  sign = params.delete('rsaSign')
  string = params_to_string(params)
  ::Baidupay::Sign::RSA.verify?(public_key, string, sign)
end

Private Instance Methods

params_to_string(params) click to toggle source
# File lib/baidupay/client.rb, line 35
def params_to_string(params)
  params.sort.map { |item| item.join('=') }.join('&')
end
prepare_params(params) click to toggle source
# File lib/baidupay/client.rb, line 27
def prepare_params(params)
  params = ::Baidupay::Utils.stringify_keys(params)
  prepare_params = {
    'appKey' => app_key, 'dealId' => deal_id, 'tpOrderId' => params['tp_order_id']
  }
  prepare_params
end