Module: WechatPay::DeliverNotify

Defined in:
lib/wechat_pay/deliver_notify.rb

Class Method Summary collapse

Class Method Details

.request(access_token, params) ⇒ Object



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
# File 'lib/wechat_pay/deliver_notify.rb', line 6

def self.request(access_token, params)
  url = "https://api.weixin.qq.com/pay/delivernotify?access_token=#{access_token}"

  params = {
    deliver_msg: 'ok',
    deliver_status: '1',
    deliver_timestamp: Time.now.to_i.to_s
  }.merge(params)

  app_signature = generate_app_signature(params)

  data = {
    appid:             WechatPay.app_id,
    openid:            params[:openid],
    transid:           params[:transid],
    sign_method:       "sha1",
    deliver_msg:       params[:deliver_msg],
    out_trade_no:      params[:out_trade_no],
    app_signature:     app_signature,
    deliver_status:    params[:deliver_status],
    deliver_timestamp: params[:deliver_timestamp]
  }

  RestClient.post(url, JSON.generate(data)) do |response|
    JSON.parse(response.body, symbolize_names: true)
  end
end