今天给各位整理分享关于安卓微信支付签名工具的知识,其中也会对微信应用签名工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注收藏本站,现在开始吧!
本文快速导读目录:
- 1、微信支付怎么在前端签名
- 2、Android微信支付会记住签名吗?
- 3、android studio生成apk后调不起微信支付
- 4、android开发微信支付集成客户端二次签名怎么做
- 5、Android微信支付签名错误这个问题,你是怎么解决的?
- 6、更换护照用微信支付,显示支付签名失败
微信支付怎么在前端签名
因为微信支付属于线上交易方式
验证密码是在手机上面验证的
因此可以线下免密免签
这样可以提高用户的满意度
Android微信支付会记住签名吗?
这种情况,一般是因为,没有在微信开放平台上正确设置app的相关信息,和第一次安装的app没有关联。
android studio生成apk后调不起微信支付
微信支付不成功的几个原因安卓微信支付签名工具,详细介绍调不起微信主要是签名的问题
签名分为安卓微信支付签名工具:app签名,包签名(简单说:app签名即是使用自定义keystore文件导出应用,包签名即是使用微信提供的工具输入包名获取签名字符串)
微信开发平台正确填写应用信息,微信支付不成功的几个原因,不仅介绍支付功能,而且介绍登录,收藏,分享(朋友圈/好友)等闪退的原因
android开发微信支付集成客户端二次签名怎么做
1.客户端代码得到用户购买的商品信息,将之传给自己公司app服务器,参数包含但不限于以下:
params.put("appid", appID);// 微信appid,选择性上传,服务器写死亦可
params.put("money", money);// 支付金额,单位:分
params.put("name", goodsName);// 商品名称
params.put("currencytype", "CNY");// 支付币种,只能填CNY,代表人民币12341234
备注:以上是参数字段是我们公司服务器定义,给服务器用以获取预支付订单号prePayId用。
备注2:详细字段请参考:
2.app服务器调用微信“统一下单”接口,得到prePayId订单号并返回prePayId给手机客户端;
3.手机客户端使用prePayId及商品信息调起微信客户端进行支付;
3.1用户操作:输入密码进行支付;返回键取消支付;网络无连接支付失败等;
4.微信客户端回调支付结果给咱们的APP客户端;
5.微信服务器异步通知咱们公司app服务器支付结果(服务器的工作,与客户端无关)
这个其实很简单的,demo文档写得很详细,直接上代码吧:
/**
* 获取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集合里面
SortedMapObject, Object parameters = new TreeMapObject, 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,
SortedMapObject, 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
}
Android微信支付签名错误这个问题,你是怎么解决的?
有以下几种可能原因及解决办法:
body字段为中文字符串,但编码不合适,导致传输过程中中文成乱码
解决办法:统一改成其他编码如utf8字符形式传输
API密钥问题
在商户平台把API密钥重新设置就ok
参数名ASCII码未按升序排列,或者是生成MD5字符串没有toUpperCase转换为大写。
到微信官网上用校验工具校验即可。
key错误。这里特别注意,公众平台的密钥和商户号的密钥是不一样的!
微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key
timeStamp在后台签名的时候S大写,前台上传的时候S小写
这个应该不会再出现了,因为微信已更正
更换护照用微信支付,显示支付签名失败
出现这种情况可能是您安卓微信支付签名工具的网络不好,或者是没有遵循开发规范,导致数字签名失败。
请按照以下几点进行排查:
1、使用签名检查工具()校验签名算法是否有误
2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)
3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)
4、确认参数的大小写,参数名与接口文档一致
5、签名原串的参数值使用原始值,不需要encode
6、接口需要使用UTF-8编码
微信支付 是腾讯集团旗下的第三方支付平台,致力于为用户和企业提供安全、便捷、专业的在线支付服务。以“微信支付,不止支付”为核心理念,为个人用户创造安卓微信支付签名工具了多种便民服务和应用场景。
安卓微信支付签名工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于微信应用签名工具、安卓微信支付签名工具的信息您可以在本站进行搜索查找阅读喔。
还没有评论,来说两句吧...