Class: Pay::JDGateway

Inherits:
Object
  • Object
show all
Defined in:
lib/pay/jd_gateway.rb

Constant Summary collapse

URL_UTF8 =
"https://pay3.chinabank.com.cn/PayGate?encoding=UTF-8"
URL =
"https://pay3.chinabank.com.cn"

Class Method Summary collapse

Class Method Details

.pay(v_mid, key, v_url, remark2, v_oid, v_amount, remark1, v_moneytype = "CNY") ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/pay/jd_gateway.rb', line 6

def self.pay(v_mid, key, v_url, remark2, v_oid, v_amount, remark1, v_moneytype = "CNY")
  v_md5info = Digest::MD5.hexdigest(v_amount.to_s + v_moneytype + v_oid + v_mid + v_url + key).upcase
  html = '<html><head></head><body>'
  html += '<form method="post" name="cb_form" action="' + URL_UTF8 + '">'
  parameter = {
      'v_oid' => v_oid,
      'v_amount' => v_amount,
      'v_moneytype' => v_moneytype,
      'v_mid' => v_mid,
      'v_url' => v_url,
      'key' => key,
      'v_md5info' => v_md5info,
      'remark1' => remark1,
      'remark2' => "[url:=#{remark2}]"
  }
  parameter.each do |key, val|
    html += "<input type='hidden' name='#{key}' value='#{val}' />"
  end
  html += '</form><script type="text/javascript">document.cb_form.submit();</script>'
  html += '</body></html>'
end

.receive(params, key) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/pay/jd_gateway.rb', line 28

def self.receive(params, key)
  v_oid = params["v_oid"]
  v_pstatus = params["v_pstatus"]
  v_pstring = params["v_pstring"]
  v_md5str = params["v_md5str"]
  v_amount = params["v_amount"]
  remark1 = params["remark1"]
  v_moneytype = params["v_moneytype"]
  if v_pstatus=="20" && v_md5str==Digest::MD5.hexdigest(v_oid+v_pstatus+v_amount+v_moneytype+key).upcase
    return {state: true, code: v_oid, amount: v_amount, remark1: remark1, v_pstring: v_pstring}
  else
    return {state: false, code: v_oid, amount: v_amount, remark1: remark1, result: v_pstring}
  end
end