微信支付的那些坑
来源:互联网 发布:淘宝网名昵称大全2017 编辑:程序博客网 时间:2024/05/16 19:13
PayReq req = new PayReq();req.appId = Constants.APP_ID;req.partnerId = response.get("mch_id");req.prepayId= response.get("prepay_id");req.packageValue = "Sign=WXPay";req.nonceStr= response.get("nonce_str");req.timeStamp= String.valueOf(ReturnJson.genTimeStamp());List<NameValuePair> signParams = new LinkedList<NameValuePair>(); signParams.add(new BasicNameValuePair("appid", req.appId)); signParams.add(new BasicNameValuePair("noncestr", req.nonceStr)); signParams.add(new BasicNameValuePair("package", req.packageValue)); signParams.add(new BasicNameValuePair("partnerid", req.partnerId)); signParams.add(new BasicNameValuePair("prepayid", req.prepayId)); signParams.add(new BasicNameValuePair("timestamp", req.timeStamp)); req.sign= ReturnJson.genAppSign(signParams);Api.sendReq(req);
要注意的最重要的一点就是sign了 官网上说是可以直接用返回给你的值 事实上并不行 用它直接返回的值根本就调不起微信支付 所以还是参照官网的算法 自己用数据生成
代码如下
public static String genAppSign(List<NameValuePair> params) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < params.size(); i++) { sb.append(params.get(i).getName()); sb.append('='); sb.append(params.get(i).getValue()); sb.append('&'); } sb.append("key="); sb.append(Constants.WECHAT_API_KEY); String appSign = MD5.getMessageDigest(sb.toString().getBytes()).toUpperCase(); Log.e("orion", appSign);return appSign; }
其他的注意的点估计就是返回的方法一定要放在你的包名.WXApi这个路径的包名下 不然是调不起支付的 比如我的主包名是com.one.two 那么返回的类必须放在 com.one.two.wxapi这个包名下才行
其他的倒是都没什么了 就是sing比较坑
0 0
- 微信支付的那些坑
- 微信支付的那些坑
- 微信支付的那些坑!
- 微信支付的那些坑
- 微信支付的那些坑
- 微信支付那些特别的坑
- 微信支付的那些坑
- 细数Android微信支付的那些坑
- 关于Android微信支付的那些坑
- Android植入微信支付的那些坑
- 那些年,微信公众号支付爬过的坑
- 微信公众号H5支付遇到的那些坑
- iOS 微信支付的那些事
- 微信支付,那些头疼的过往
- 关于微信支付的那些事
- 微信支付的那些小事
- iOS微信支付那些坑
- 微信支付那些事
- 关于mybatis+spring的org.apache.ibatis.binding.BindingException: Invalid bound statement错误
- Android Telephony分析(七) ---- 接口扩展(异步转同步)
- 删除文件夹下所有文件
- SOCKET的封包与拆包
- MySQL字符串中数字排序的问题
- 微信支付的那些坑
- HTML标签<label></label>标签有什么作用?
- 关键字加亮--JS方法
- android SDK manager 无法获取更新版本列表
- LabelValueBean的使用
- python中二维列表的创建
- 配置vim后,进行一个简单的进度条实现
- (三)ARM 常用汇编指令(2)之ARM堆栈保护/恢复现场分析
- <jsp:useBean>的使用