[关闭]
@guochy2012 2014-01-13T10:01:53.000000Z 字数 788 阅读 1335

支付宝手机支付

WAP支付

构造数据请求,获取token

先构造req_data,写成xml格式
生成sign签名,签名前先字典排序,加密时把secret_key放在最后
发送HTTP请求
解析获得的数据,从中得到request_token
  1. def get_token(url)
  2. uri = URI(url)
  3. ret = Net::HTTP.get(uri)
  4. ret = ret.split('&')
  5. ret_options = {}
  6. ret.each do |tmp|
  7. tmp = tmp.split('=')
  8. key = tmp[0]
  9. value = tmp[1]
  10. ret_options[key] = value
  11. end
  12. res_data = ret_options['res_data']
  13. sign = ret_options['sign']
  14. request_token = ''
  15. if sign
  16. res_data = CGI.unescape(res_data)
  17. doc = Nokogiri::XML(res_data)
  18. request_token = doc.xpath('//direct_trade_create_res/request_token').text
  19. end
  20. return request_token
  21. end
  1. #产生签名sign
  2. def generate_wap_sign(options)
  3. query = options.sort.map do |key, value|
  4. "#{key}=#{value}"
  5. end.join('&')
  6. Digest::MD5.hexdigest("#{query}#{@secret_key}")
  7. end

调用手机WAP支付接口

这里要把service参数修改一下
然后再次构造req_data,只不过这里的数据为上面获取的token
然后是生成sign
发送HTTP请求发起交易

回调函数

一个是GET同步处理
另一个是POST服务器异步处理
参数中包含 trade_no
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注