记一次微信APP支付开发返回-1的坑
微信APP文档
问题出现在5-6-7环节,当我第一次签名后生成预付单的时候返回很正常,表明我的签名没问题,微信商户数据也没问题,但是接收到预付单号把预付单号结合官方文档再次进行签名的时候却频频-1,官方要的参数是这些
这六个参数其中的一部分 在第一次生成预付单的时候会返回appid,prepayid,noncestr,mch_id(partnerid);这四个参数,我们第一次生成预付单也会有,这时候有人就会直接用了,随后就会出现各种噩梦,
问题一:二次签名的时候
六个字段appid,mch_id是可以通用,不管返回还是自己系统中常量都行,但是noncestr切记不要再次生成随机或者使用第一次的,而必须从预付单返回参数中拿取,
问题二:返回给前端安卓这些参数的时候
不要用实体类对象返回,否则你会发现package字段是标识符而想办法改个名字,然后。。。就GG了,建议使用map存放所有键值,
问题三:感谢各位csdn大佬帮我排查了其他的错误
像timestamp时间戳位数为10,二次签名字段要都小写,不能按照驼峰写法等等,
贴出二次签名的代码(贴太多代码没意义,需要的另找我要Q729418277)
JSONArray prepay_id = result_xml.getJSONArray("prepay_id");String prepayId = (String) prepay_id.get(0);SortedMap<Object, Object> map = new TreeMap();JSONArray appid = result_xml.getJSONArray("appid");JSONArray mchid = result_xml.getJSONArray("mch_id");JSONArray nonce_str = result_xml.getJSONArray("nonce_str");SortedMap<Object, Object> mapReturn = new TreeMap();map.put("appid", appid.get(0));map.put("noncestr",nonce_str.get(0));map.put("partnerid", mchid.get(0));map.put("prepayid",prepayId );map.put("timestamp", Long.toString(new Date().getTime()/1000L));mapReturn.putAll(map);//存放进要返回的mapmap.put("package", "Sign=WXPay");String paySign = WeiXinPayUtil.createSign(map).toUpperCase();//二次签名//返回map填充剩余数据mapReturn.put("packages", "Sign=WXPay");mapReturn.put("sign",paySign);log.info("返回给页面的map:" + map);ResultUtils.setCustomSuccessState(result, "微信统一订单下单成功");result.setResult(mapReturn);
这里返回的package改为packages是因为前端使用的是集成的方式,接收我的数据,不做任何处理直接交给微信,所以他必须定义参数接收,但是参数定义不能是package,但是我做二次签名的还是用package做的, 返回改为packages
至于有大佬说微信签名等数据都要转成大写,我觉得没必要,我试过小写的sign也是可以调起微信的
记一次微信APP支付开发返回-1的坑相关推荐
- JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现
一,准备工作 事前申请一个商家版的微信公众号(目前微信支付只有商家版公众号可开通),然后开通微信支付功能,并做相应的配置. 申请开通微信公众号和开通微信支付需要等待审核,一般都5个工作日左右.开通成功 ...
- 微信App支付总结(返回-1什么的最e心)
微信支付总结 简介 微信支付商户平台官网:https://pay.weixin.qq.com 版权声明:本文为原创文章,未经允许不得转载 更新时间:2016/6/27 本文说明 现在很多项目都会集成微 ...
- 微信APP支付开发(java)关联openId和appID不匹配问题
@ 微信打包APP,支付接口后台包这个错误,openId和appID不匹配 #之前一直做 H5 小程序方面 今天做App 简直闹心死了 微信app支付与小程序支付有所差别(切记不要传openid)上代 ...
- 2016年微信app支付开发填坑篇
之前开发过高德地图的,百度地图的,人家官网的资料,开发文档,官方论坛,应有尽有,特别详细.微信支付相对支付宝支付,操作繁琐了很多,而且有些文档上的说明太过专业,导致问题多多. 首先他们官网上面只有ec ...
- android自动微信支付平台,Android微信APP支付开发要点
基本概念 包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置. 签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置. 调试阶段,签名文件 ...
- 微信App支付源码坑注释
微信App支付源码&坑注释 部分的代码,因为代码是copy的我自己代码,然后再进行部分的编辑和注释,所以在使用的时候有可能有欠缺,不过整体来说,应该不影响使用的.如果有疑问,可以留言.在微信A ...
- 微信app支付服务端开发记录
微信APP支付服务端 调用接口需要注意事项: 1.签名:需要全部参数参加签名,空值去掉.(实际传递了什么参数需要,就根据实际参数进行签名) 2.签名参数:appid是申请支付功能的app对于的ID,k ...
- android微信支付都需要什么意思,Android开发微信APP支付功能的要点小结
基本概念 包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置. 签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置. 调试阶段,签名文件 ...
- 微信APP支付填坑记
首先吐槽几句,微信支付很强大,古人有诗赞曰:自古多坑空余恨,此坑绵绵无绝期. 先说几个必做前置任务: 1 在微信商户平台设置你的公用key,程序里生成sign签名时,要用到这个key.为md5 32位 ...
- 微信APP支付功能开发
前期准备工作 1. 微信各平台功能认识 1.1 微信开放平台: 支持移动应用,公众号的开发,创建应用并得到APPID,使你的应用支持微信支付. 1.2 微信公众平台: 微信小程序,服务号,订阅号的开发 ...
最新文章
- ​批评代码而不是人!15 年程序员的职场箴言
- 使用内存映射文件来提高你程序的性能
- Delphi 原生ADO(二)
- python爬取csdn排名积分等信息
- 随想,对嵌入式职场建议
- Java面试题整理(附参考答案)
- 易优Eyoucms企业建站系统 1.4.2
- 自己动手「焊」键盘,使用Python编写,一键放连招不在话下
- 【STM32】HAL库 STM32CubeMX教程六----定时器中断
- at24c16如何划分出多个读写区_漫话:如何给女朋友解释为什么Windows上面的软件都想把自己安装在C盘...
- linux 托盘两个输入法图标,linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决...
- php 后台数据 u,Yunucms代码审计:后台XSS和数据库信息泄露
- 深度linux wubildr.mbr,把玩Linux何须安装
- 2008年9月23号,星期二,晴。博观而约取,厚积而薄发。(苏轼)
- 浅谈事件委托(事件代理)和事件冒泡
- pdman 创建表同步数据库_PDMan-2.0 正式发布:用心开源,免费的国产数据库建模工具PowerDesigner...
- OpenJdk各版本、各操作系统下载,亲测好用。
- 本地主机Xshell连接虚拟机Linux CentOS7
- java zip加密压缩_Java解压和压缩带密码的zip文件过程详解
- Android小程序-乐学成语背景音乐(五)
热门文章
- OFFICE | WORD VBA 合集
- C语言小知识——uthash使用
- 单片机c语言1602怎么接线,lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图 - 全文...
- 未安装任何音频设备解决方案(2021/12/27)
- 贵阳学院教务管理系统服务器,贵阳学院教务处,教务网络管理系统
- 深山红叶PE系统工具箱V32
- 使用DirectX播放音频数据流
- Linux下PCI设备驱动程序开发
- 尚硅谷 硅谷新闻_如果每个人都遥不可及,硅谷会损失什么
- 如何发布一个BT种子文件