微信扫码支付(模式一)
官方文档地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_4
项目开源地址:http://git.oschina.net/javen205/weixin_guide
微信扫码支付遇到的问题
- 原生支付URL参数错误
- 回调接口URL有回调,但是接收不到参数
- 商户后台返回的数据字段结构不合法
- 获取商户订单信息超时或者商户返回的httpcode非200
解决问题
- 原生支付URL参数错误
这个错误一般会出现在获取到二维码URL之后生成二维码微信扫码的时候。如果你出现此类型的问题请检查
1、生成二维码所需参数列表中参数是否有错误(区分大小写)
2、参数中签名sign时候正确 签名算法 签名校验工具
以下是生成二维码URL的代码
|
|
- 回调接口URL有回调,但是接收不到参数123456Enumeration<String> en=getParaNames();while (en.hasMoreElements()) {Object o= en.nextElement();System.out.println(o.toString()+"="+getPara(o.toString()));}
以上代码中输出的参数都为NULL
由于官方的文档描述不是很清楚,大家都以为回调请求将带productid和用户的openid等参数是以普通的参数一样,其实这个回调返回的参数是一个XML输入流
result结果为
如果返回的 return_code result_code 不为SUCCESS 而回调的接口没有返回任何数据或者返回的数据不合法就会出现以下错误
- 商户后台返回的数据字段结构不合法(返回的数据包格式不正确)
- 获取商户订单信息超时或者商户返回的httpcode非200(没有返回的数据包)
如果以上都没有问题,就剩下最后一个步骤了 商户后台系统将prepay_id返回给微信支付系统 以下是详细的代码