APP支付支付签名验证失败
问题描述
最近做APP支付,微信下单没有问题,成功获取了预支付订单id,然后二次签名提供给前端,却一直提示支付签名验证失败,不知道什么原因,故期望大神能解答一下
二次签名
Map<String, String> returnMap = new HashMap<>();returnMap.put("appid", response.get("appid"));returnMap.put("noncestr", response.get("nonce_str"));returnMap.put("package","Sign=WXPay");returnMap.put("partnerid", response.get("mch_id"));returnMap.put("prepayid", response.get("prepay_id"));returnMap.put("timestamp", String.valueOf(System.currentTimeMillis() / 1000));//单位为秒String sign = WXPayUtil.generateSignature(returnMap, config.getKey());// 二次签名returnMap.put("sign",sign); //签名
签名代码使用的是微信提供的SDK
/*** 生成签名** @param data 待签名数据* @param key API密钥* @return 签名*/public static String generateSignature(final Map<String, String> data, String key) throws Exception {return generateSignature(data, key, SignType.MD5);}/*** 生成签名. 注意,若含有sign_type字段,必须和signType参数保持一致。** @param data 待签名数据* @param key API密钥* @param signType 签名方式* @return 签名*/public static String generateSignature(final Map<String, String> data, String key, SignType signType) throws Exception {Set<String> keySet = data.keySet();String[] keyArray = keySet.toArray(new String[keySet.size()]);Arrays.sort(keyArray);StringBuilder sb = new StringBuilder();for (String k : keyArray) {if (k.equals(WXPayConstants.FIELD_SIGN)) {continue;}if (data.get(k).trim().length() > 0) // 参数值为空,则不参与签名sb.append(k).append("=").append(data.get(k).trim()).append("&");}sb.append("key=").append(key);if (SignType.MD5.equals(signType)) {return MD5(sb.toString()).toUpperCase();}else if (SignType.HMACSHA256.equals(signType)) {return HMACSHA256(sb.toString(), key);}else {throw new Exception(String.format("Invalid sign_type: %s", signType));}}
解决办法
已解决,也不知道什么原因,调整了一下数据就好了
APP支付支付签名验证失败相关推荐
- java app微信支付接口_JAVA微信APP支付接口整合
上次我们看到了支付宝的APP支付工具,那么这次就来封装封装微信的APP支付;如果已经清楚了支付宝的支付流程,那么微信支付也和它大同小异了,当然这其中肯定是有各种变化的: 首先让我把微信支付文档的官网贴 ...
- APP 微信支付java后台代码(解决支付失败返回-1)
开发之前的准备工作: APP支付申请条件 申请成为APP支付商户需要满足以下条件: 1.APP支付商户,须拥有微信开放平台(http://open.weixin.qq.com)的APPID: 2.AP ...
- 微信支付服务商,![CDATA[sub_mch_id与sub_appid不匹配],微信小程序支付,签名错误,CDATA[签名错误]解决方法,支付签名验证失败
微信支付服务商,微信小程序支付,签名错误,CDATA[签名错误]解决方法 1:服务商和普通的商户支付在代码上没有太大差异(不同的是上传的参数,而且微信支付服务商参数上比较难找,官方文档又太简洁,所以很 ...
- 微信支付签名验证失败的问题
微信签名验证失败(两个地方遇到) 第一个在统一下单的时候签名验证失败 去微信社区里面查了下,有些人是自己代码错的,但是我拿的微信sdk的demo代码做的改造,然后检查几遍也没看出来问题,我用的是小程序 ...
- 关于微信APP支付,提示支付验证签名失败
最近做微信APP支付,在"统一下单"里加签没有问题,调用成功,但是在 "调起支付"后却提示 支付验证签名失败. 先说一下请求的参数,参数一共有七个: prep ...
- 服务商模式支付签名验证失败php,服务商模式小程序支付签名失败,请求管理员和大牛解决!!!...
服务商模式小程序支付签名失败,请求管理员和大牛解决!!! 根据服务商模式的小程序支付文档: ①商户server调用支付统一下单: 统一下单成功返回预付单: order appid"wx11a ...
- Unity微信支付,IOS提示支付签名验证失败。安卓没问题
最近手上有一个Unity项目,Java后台,原作者跑路,我们属于半路上车. 打包ipa的时候碰到了很多问题. 在原来项目的基础上引入了微信支付体系. 安卓支付流程没有出问题,但是到了IOS这里,千辛万 ...
- 关于微信app支付,支付验证签名失败
用的是uniapp的方法,一直报 支付验证签名失败 然后sign只截取前30位字符串,就能成功支付了 不明白是什么问题,希望可以帮到你
- php支付接口签名,php实现支付接口签名验证
前言 游戏服务器的玩家充值流程,如果通过google商店或者app store进行充值的话,需要实现回调支付地址.玩家充值成功以后,app store或者google商店会向回调地址传递参数,验证玩家 ...
最新文章
- webstorm的使用技巧——1
- 上周热点回顾(12.8-12.14)
- c# 连接Redis报错:WRONGTYPE Operation against a key holding the wrong kind of value:类型搞混弄出的错误...
- Codeforces 918D/917B - MADMAX
- Nginx负载均衡状态介绍
- mysql connector net 6.9.3_MySQL Connector/Net 6.9.3 发布 MySQL Connector/Net 6.9.3下载
- Codeforces Beta Round #80 (Div. 1 Only) D. Time to Raid Cowavans 分块
- stream分组求和
- 抖音上很火的3D立体动态相册实现代码!
- java ehcache使用_EhCache使用详细介绍
- isSelected() 的使用
- 贵州省正安县格林镇:“爱心妈妈”来了!
- IT 行业平均薪资第一
- latex中插入两张子图片
- html中去除下划线,下划线怎么取消?
- HTML简易时钟教程,html5 svg简单的模拟时钟特效-HTML5动画
- C语言零基础入门(一 简介)
- 2021年全球区块链产业重要投资和发展领域
- 利用简单游戏项目教你如何用java如何画对象
- PCB板厂工厂常用的英文