微信签约的时候参数正确但一直报错——entrustweb_sign参数结构错误
今天做微信免密支付签约的时候,一直报entrustweb_sign参数结构错误,调了一天,反复核对参数发现没问题,比对生成的sign(签名)也是一致的。
【推荐一下微信官方接口调试工具来生成签名做比对:微信公众平台支付接口调试工具】;
后来反复读文档:
文档上签名算法是这样的。签约的文档部分有一部分非常重要,如下图(注意标注部分):
回调地址是要进行encode处理,但是生成签名的时候传进去的notufy_url是原值。(我就是在这个坑里待了一天)
还有就是此处的时间戳一定是10位。
下面看代码:
/** * @Author : lilong * @Description :微信支付签约 * @Date : 10:40 2018/5/3 **/ public static String wxContract() throws Exception {//签名所需要的参数 String appid = "wx05c*********";String mch_id = "14847****";String plan_id = "120***";String contract_code = "100000";Integer request_serial = 1000;String contract_display_account = "wechatPay";String notifyUrl = "http://192.168.*.**:8080/mvc/callbackContract";//回调地址需要encode,但是生成签名的时候传进去的是源值 String notify_url = java.net.URLEncoder.encode(notifyUrl);String version = "1.0";//时间戳是10位 String timestamp =String.valueOf( new Date().getTime()/1000);// SortedMap<Object,Object> signMap = new TreeMap<Object,Object>(); Map<String,String> signMap = new TreeMap<>();signMap.put("appid", appid);signMap.put("mch_id", mch_id);signMap.put("plan_id",plan_id);signMap.put("contract_code",contract_code);signMap.put("request_serial",request_serial.toString());signMap.put("contract_display_account",contract_display_account);signMap.put("notify_url",notifyUrl);signMap.put("version",version);signMap.put("timestamp",timestamp);System.err.println(timestamp);String sign = createSign(signMap);String url = "https://api.mch.weixin.qq.com/papay/entrustweb?appid=" + appid+ "&contract_code=" + contract_code + "&contract_display_account=" + contract_display_account + "&mch_id=" + mch_id + "¬ify_url=" +notify_url + "&plan_id=" + plan_id + "&request_serial=" + request_serial+ "×tamp=" + timestamp + "&version=" + version + "&sign=" + sign;System.err.println("*************" + url + "***********");return url; }
微信签约的时候参数正确但一直报错——entrustweb_sign参数结构错误相关推荐
- 微信登录报错Scope 参数错误或没有 Scope 权限
想要实现微信扫码登录 https://open.weixin.qq.com/connect/qrconnect?appid=appid&redirect_uri=redirect_uri&am ...
- Mybatis中sql语句报错无效参数类型问题
报错mybatis无效参数类型问题,mybatis中sql语句的参数,如果这个参数可以为空,那么则必须添加jdbcType,否则将报错无效参数类型. Mybatis文档中有如下解释: 像 MyBati ...
- laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法
项目场景: apache运行laravel框架开发的系统. 问题描述: 提交post或者其他请求,会在request中存在s参数,导致数据库报错. 原因分析: apache的.htaccess文件中的 ...
- 淘宝联盟 推广链接 API取链 转链报错 传入参数错误,请检查adzone_id是否属于appkey拥有者
通过之前的取链文章,现在新增渠道时候报错 传入参数错误,请检查adzone_id是否属于appkey拥有者","request_id":"f7vemdro9du ...
- 调整k8s的iptable参数时启动生效报错
调整k8s的iptable参数时启动生效报错 sysctl -p /etc/sysctl.d/kubernetes.conf 报错如下: net.bridge.bridge-nf-call-iptab ...
- SpringBoot项目启动报错[类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。]
Web server failed to start. Port 80 was already in use. Web server failed to start. Port 80 was alre ...
- 微信小程序 渲染层网络错误_小程序使用video报错 渲染层网络层错误
我用官方的文档,就换了个图片和视频地址.报错渲染层网络层错误.视频可以看,功能也可以用,但是看到这报错,台烦人了. https://uniapp.dcloud.io/component/cover-v ...
- Python Dataloader 多进程报错 num_workers参数设置
报错内容:An attempt has been made to start a new process before the current process has finished 该报错一般发生 ...
- 微信小程序获取二维码scene报错40129
java后端向微信服务端https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN请求获取带参二维码的时候,由于 ...
最新文章
- 听说英飞凌内推技术岗位有大额奖金
- 3D模型格式解析(OBJ)
- 在单链表写入一组数据代码_第5章 第1节 链表 - osc_x8s7voop的个人空间 - OSCHINA - 中文开源技术交流社区...
- golang之strings
- 超级终端连接华为交换机_Win8系统使用超级终端连接华为交换机的方法
- 基于Java保险员工管理系统的设计与实现
- 7. 堆(宋红康笔记)
- 如何在Excel中快速删除空白行
- html中如何淡化背景图片,Word2010如何去除图片背景
- 高中政治老师教师资格证考试成功通过前辈备考经验分享(2)
- Excel调用有道词典实现批量翻译
- 08、SpringCloud 系列:Nacos - 安装、启动
- 目前 计算机硬件系统,计算机硬件系统练习题.doc
- 计算机网络检查方式,一种计算机网络环路检测方法与流程
- 埃隆麝香下一件大事是向宽带发射4万颗卫星
- 【C++常用函数】整数转字符串itoa()
- 【GXOI / GZOI2019】【树链剖分】【线段树】旧词
- 学考计算机会考考点工作总结,学业水平测试工作总结.docx
- js作为websocket client,服务用java 点对点、一对多聊天
- strcmp,stricmp,strcmpi,strncmp,strnicmp,strncmpi,strcat,strncat比较
热门文章
- 论文阅读 ACNet: Strengthening the Kernel Skeletons for Powerful CNN via Asymmetric Convolution Blocks
- 华为设备密码认证模式
- lg-1 x 怎么算_婚宴邀请微信怎么写 婚宴邀请微信范文大全
- 玩转 Windows Terminal
- 我不信只有我自己,曾如此般jingxing
- 名编辑电子杂志大师教程 | “文件”菜单介绍
- Zigbee(cc2530)和STM32 SPI通信,温度采集,组网
- CC2530外围电路若干问题
- WPS(Wi-Fi Protected Setup)
- apr各个版本工具包下载及安装教程