Module: WechatPay::App

Defined in:
lib/wechat_pay/app.rb

Class Method Summary collapse

Class Method Details

.payment(access_token, params) ⇒ Object

required params:

traceid, body, out_trade_no, total_fee, notify_url, spbill_create_ip


6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/wechat_pay/app.rb', line 6

def self.payment(access_token, params)
  noncestr = SecureRandom.hex(16)
  timestamp = Time.now.to_i.to_s
  package = Package.generate(params)

  prepay_id = PrepayId::App.generate(
    access_token,
    traceid:   params[:traceid],
    noncestr:  noncestr,
    package:   package,
    timestamp: timestamp
  )

  attrs = {
    appid:     WechatPay.app_id,
    appkey:    WechatPay.pay_sign_key,
    noncestr:  noncestr,
    package:   'Sign=WXpay',
    partnerid: WechatPay.partner_id,
    prepayid:  prepay_id,
    timestamp: timestamp
  }
  sign = Sign.sha1(attrs)

  {
    sign:       sign,
    package:    attrs[:package],
    nonce_str:  attrs[:noncestr],
    prepay_id:  attrs[:prepayid],
    timestamp:  attrs[:timestamp],
    partner_id: attrs[:partnerid]
  }
end