tiantianaixuexi 2015-01-15
微信测试账户登陆地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
网页授权相关:users/auth_callbacks/weixin注意的是需要设置网页授权获取用户基本信息的url,在页面下边,http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index
统一支付接口:http://mch.weixin.qq.com/wiki/doc/api/index.php?chapter=9_1#
扫码相关api:http://mch.weixin.qq.com/wiki/doc/api/index.php?chapter=6_4
1:刚才服务器接受到了威信的回应,params的时候找不到回应的数据,最后通request.body.read获取到了数据,然后通过Hash.from_xml转换为hash。
2:生成二维码支付需要注意,其中的key是微信支付相关的paypass,不是微信的secret
@url="weixin://wxpay/bizpayurl?appid=#{appid}&mch_id=#{mch_id}&nonce_str=#{nonce_str}&product_id=#{product_id}&time_stamp=#{time_stamp}&sign=#{sign}"
3:调用微信统一支付接口,一直报错,经过多次测试,确信参数和sign都没问题,最后发现是post请求写错了,总结了以下几种写法:
resp=Hash.from_xml(Typhoeus::Request.post('https://api.mch.weixin.qq.com/pay/unifiedorder',body:make_xml(data)).body)
resp=Hash.from_xml(RestClient.post('https://api.mch.weixin.qq.com/pay/unifiedorder',make_xml(data),headers:{content_type:'application/xml'}).body)
resp=Hash.from_xml(RestClient::Request.execute({url:'https://api.mch.weixin.qq.com/pay/unifiedorder',method:"post",payload:make_xml(data),headers:{content_type:'application/xml'}}).body)
4:调用完微信统一支付接口后,返回数据给微信服务器,直接一字符串形式把xml返回回去就可以了,以下是xml格式。
<xml>
<appid>wx506200db18fa3260</appid>
<mch_id>10017350</mch_id>
</xml>
5:开发微信端OAuth2.0网页授权相关(获取用户openid),刚才一直不成功,后来发现是要设置服务器url,先关注申请测试开发,在‘OAuth2.0网页授权(仅关注者才能授权)’右侧点击修改填写服务器url(用ngrok会方便的多)。
6:微信扫码支付,先生成了weixin://wxpay/bizpayurl..这样的url的二维码图片,然后扫码,微信服务器会把数据回应到我的服务器的url,这个url是在微信支付->开发配置->支付配置中的修改->支付回调URL中设置
微信登陆开发:
ssh-Rdaili.49393.com:80:localhost:[email protected]
1:使用微信公众平台的接口开发,http://mp.weixin.qq.com
2:使用微信开放平台的接口开发,https://open.weixin.qq.com/cgi-bin/index(501308401)