Class: ChinaPay::Alipay::Product::DirectPay

Inherits:
Base
  • Object
show all
Defined in:
lib/china_pay/alipay.rb

Constant Summary collapse

NAME =
'即时到账'
SERVICE_LABEL =
:create_direct_pay_by_user

Constants inherited from Base

Base::ATTR_REQUIRED, Base::DEFAULT_CHARSET, Base::SIGN_TYPE_MD5

Instance Method Summary collapse

Constructor Details

#initialize(order) ⇒ DirectPay

Returns a new instance of DirectPay.



27
28
29
30
31
32
33
# File 'lib/china_pay/alipay.rb', line 27

def initialize(order)
  @order = order

  @params = {}
  @extra_params = {}
  @extended_params = {}
end

Instance Method Details

#after_payment_redirect_url(url) ⇒ Object



40
41
42
43
# File 'lib/china_pay/alipay.rb', line 40

def after_payment_redirect_url(url)
  @params[:return_url] = url
  self
end

#error_callback_url(url) ⇒ Object

出错通知异步调用 URL

NOTE: 需要联系技术支持才能开通



81
82
83
84
# File 'lib/china_pay/alipay.rb', line 81

def error_callback_url(url)
  @params[:error_notify_url] = url
  self
end

#extended_params(params) ⇒ Object

公用业务扩展参数

用于特定业务信息的传递

NOTE: 需要单独签约才能生效



73
74
75
76
# File 'lib/china_pay/alipay.rb', line 73

def extended_params(params)
  @extended_params = params
  self
end

#extra_params(params) ⇒ Object



45
46
47
48
# File 'lib/china_pay/alipay.rb', line 45

def extra_params(params)
  @extra_params = params
  self
end

#gateway_api_urlObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/china_pay/alipay.rb', line 50

def gateway_api_url
  secure_signature = create_signature
  request_params = sign_params.merge(
    :sign_type => SIGN_TYPE_MD5,
    :sign => secure_signature
  )

  lost_attributes = ATTR_REQUIRED - request_params.keys
  if lost_attributes.any?
    raise "the following keys are lost: #{lost_attributes.inspect}"
  end

  uri = URI(GATEWAY_URL)
  uri.query = URI.encode_www_form(request_params.sort)

  uri.to_s
end

#notification_callback_url(url) ⇒ Object



35
36
37
38
# File 'lib/china_pay/alipay.rb', line 35

def notification_callback_url(url)
  @params[:notify_url] = url
  self
end