Android微信支付获取二次签名Sign的方法

本文实例为大家分享了Android微信支付获取二次签名Sign的方法,供大家参考,具体内容如下

/** * 获取sign签名 * * @return */ private String genPayReq() { // 获取参数的值 PayReq request = new PayReq(); request.appId = ConstantsMember.APP_ID; request.partnerId = ConstantsMember.MCHID; request.prepayId = mPrepayId; request.packageValue = "Sign=WXPay"; request.nonceStr = DataUtil.getGuid(); request.timeStamp = DataUtil.getTimeStamp(); // 把参数的值传进去SortedMap集合里面 SortedMap<Object, Object> parameters = new TreeMap<Object, Object>(); // {appid=wx34df375d7dae8c90, noncestr=3BF34EF2CA4A462DB8D4EA48E785CDC3, // package=Sign=WXPay, partnerid=1349967601, // prepayid=wx2016070910354542c7155d4e0846850809, timestamp=1468031760} parameters.put("appid", request.appId); parameters.put("noncestr", request.nonceStr); parameters.put("package", request.packageValue); parameters.put("partnerid", request.partnerId); parameters.put("prepayid", request.prepayId); parameters.put("timestamp", request.timeStamp); String characterEncoding = "UTF-8"; String mySign = createSign(characterEncoding, parameters); System.out.println("我的签名是:" + mySign); return mySign; } /** * 微信支付签名算法sign * * @param characterEncoding * @param parameters * @return */ public static String createSign(String characterEncoding, SortedMap<Object, Object> parameters) { StringBuffer sb = new StringBuffer(); Set es = parameters.entrySet();// 所有参与传参的参数按照accsii排序(升序) Iterator it = es.iterator(); while (it.hasNext()) { @SuppressWarnings("rawtypes") Map.Entry entry = (Map.Entry) it.next(); String k = (String) entry.getKey(); Object v = entry.getValue(); if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) { sb.append(k + "=" + v + "&"); } } sb.append("key=" + ConstantsMember.KEY); //KEY是商户秘钥 String sign = MD5Util.MD5Encode(sb.toString(), characterEncoding) .toUpperCase(); return sign; // D3A5D13E7838E1D453F4F2EA526C4766 // D3A5D13E7838E1D453F4F2EA526C4766 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-08-31 02:24:21

Android微信支付获取二次签名Sign的方法的相关文章

Android微信支付获取二次签名Sign的方法_Android

本文实例为大家分享了Android微信支付获取二次签名Sign的方法,供大家参考,具体内容如下 /** * 获取sign签名 * * @return */ private String genPayReq() { // 获取参数的值 PayReq request = new PayReq(); request.appId = ConstantsMember.APP_ID; request.partnerId = ConstantsMember.MCHID; request.prepayId =

android微信支付问题总结

首先我们先看一个android微信支付时遇到的一个错误提示: onPayFinish, errCode = -1  当你参数签名都没有问题的时候,出现这个提示,请按照如下操作: 在你的项目测试android微信的组件(微信分享.微信支付等)的时候,一定要用你自己的keystore签名出来测试,如果用debug.keystore肯定是不成功的! 本文部分内容转自:http://blog.csdn.net/baidu_17508977/article/details/44517283 1,在微信开放

Android微信支付3.0版本

问题描述 Android微信支付3.0版本 根据开发文档以及网上给的demo总是调不通,apk也是打包签名了的!客户端自己实现第一次签名和第二次签名总是支付结果总是-1,我也是无能为力了!求大神指点 解决方案 android微信支付android 微信支付android微信支付 解决方案二: http://download.csdn.net/detail/baidu_17508977/8521101 解决方案三: 可以看下 Ping++ Android 支付接口:https://www.ping

Android 微信支付总看到签名 这是什么? 要调用微信支付一定要有签名吗?

问题描述 Android 微信支付总看到签名 这是什么? 要调用微信支付一定要有签名吗? Android 微信支付总看到签名 这是什么? 要调用 签名是自己搞签名还是官方签名代码复制过来 解决方案 每个应用都有,不用你自己去写 解决方案二: 就是应用的签名,可以用微信提供的软件获取手机上应用的签名 解决方案三: 微信支付---签名

android微信支付源码分享_Android

本文为大家分享了android微信支付源码,供大家参考,具体内容如下 参数配置 public static final String APP_ID ; /** 在微信开放平台注册app,微信给分配的id **/ public static final String MCH_ID; /** 申请开通微信支付,成功后微信会给你发一封邮件,给你分配一个商户平台账号,在资料里有商户ID **/ public static final String API_KEY; /** 在微信发给你的那封邮件里,给你

android微信支付总是返回-1的问题

问题描述 android微信支付总是返回-1的问题 目前问题是清空微信数据和再次签名是可以支付的,但后面就不可以支付了,这是什么原因呢? sign的值是我自己拼接的,我后台log打印的看到每次支付的sign也是不一样的. 支付返回-1是什么原因呢? 官方说错误返回码有4开头的四位数字 ,我怎么没看见? 解决方案 每次支付的sign也是不一样的 是的,sign是根据你其它参数算出来的,你的sign错了,当然返回错误. 官方文档列出的可能错误原因:签名错误.未注册APPID.项目设置APPID不正确

Android微信支付开发问题_Android

并不是所有的BAT的API都是非常好用的,微信支付就有不少的缺陷,总结一下微信支付实现中出现的问题   坑点一:   PayReq的参数 sign的生成   PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 复制代码 代码如下: List<NameValuePair> signParams = new LinkedList<NameValuePair>();         s

Android微信支付开发问题

并不是所有的BAT的API都是非常好用的,微信支付就有不少的缺陷,总结一下微信支付实现中出现的问题 坑点一: PayReq的参数 sign的生成 PayReq对象有个参数为packageValue 而sign生成时要用到packageValue,但是对应的Key是package,这里的key容易弄错 复制代码 代码如下: List<NameValuePair> signParams = new LinkedList<NameValuePair>();         signPar

android微信支付源码分享

本文为大家分享了android微信支付源码,供大家参考,具体内容如下 参数配置 public static final String APP_ID ; /** 在微信开放平台注册app,微信给分配的id **/ public static final String MCH_ID; /** 申请开通微信支付,成功后微信会给你发一封邮件,给你分配一个商户平台账号,在资料里有商户ID **/ public static final String API_KEY; /** 在微信发给你的那封邮件里,给你