v3特约商户进件-Java版本
这里写自定义目录标题
- 记那些年特约商户进件踩过的坑
- 1. 微信平台证书下载
- 2. 图片上传
- 3. 申请的坑
- 4. 待补充(还有查询没有踩坑)
记那些年特约商户进件踩过的坑
公司要做特约商户进件,折腾了好几天,都快秃了,现在就来说一说那些踩过的坑(想起来就是一把辛酸泪有木有)。
1. 微信平台证书下载
总的来说微信的SDK还是很有用的,比如微信平台证书它就封装了一个挺好用的方法,下载地址https://wechatpay-api.gitbook.io/wechatpay-api-v3/kai-fa-gong-ju
直接按照测试接口调用就行,很好用的,但是配置一定要配置好,尤其是服务商号和商户号,一定要区分开,在这里吃了大亏!
2. 图片上传
这是我踩过最深的坑,头都要秃了,好吧啦,
- 签名错误,原因是没有设置user-agent,一定要设置
//我的头文件
HttpPost httpPost = new HttpPost(uploadUrl);
// httpPost.setHeader("Wechatpay-Serial", serialNo);httpPost.setHeader("Accept", "application/json");
// httpPost.setHeader("Content-Type", "application/json");httpPost.setHeader("user-agent", "application/json");httpPost.setHeader("Content-Type","multipart/form-data;boundary=boundary");httpPost.setHeader("Authorization", authorization);
- 签名的内容
POST
/v3/merchant/media/upload
1566987169 //时间戳
12ced2db6f0193dda91ba86224ea1cd8 //随机数
{"filename":" filea.jpg ","sha256":" hjkahkjsjkfsjk78687dhjahdajhk "}
file不参与签名
3. 二进制内容错误
这是因为,我采用的是字符串拼接,使用SDK里面的方法去用,一直不可以,没办法只能换一种方法去写了
//创建MultipartEntityBuilderMultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);//设置boundarymultipartEntityBuilder.setBoundary("boundary");multipartEntityBuilder.setCharset(Charset.forName("UTF-8"));//设置meta内容multipartEntityBuilder.addTextBody("meta","{\"filename\":\""+file.getName()+"\",\"sha256\":\""+DigestUtils.sha256Hex(new FileInputStream(file))+"\"}", ContentType.APPLICATION_JSON);//设置图片内容multipartEntityBuilder.addBinaryBody("file", file, ContentType.create("image/jpg"), file.getName());//放入内容httpPost.setEntity(multipartEntityBuilder.build());HttpClientBuilder httpClientBuilder = HttpClients.custom();CloseableHttpClient httpClient = httpClientBuilder.setSSLContext(SSLContextUtils.getSSLContext(apiclientCertP12,mchId)).build();CloseableHttpResponse response = httpClient.execute(httpPost);
3. 申请的坑
1.论微信的坑有多深,我感觉是没个三五天爬不出来的那种,好容易走到申请数据,首先数据里面夹杂着数组,就够头疼的,还有各种校验以及判定,总之写的判定快把自己写吐了。
2. 申请的时候的两种证书的问题,微信的文档很笼统,爬了好几天才爬出来,欲哭无泪
X509Certificate certificate = PemUtil.loadCertificate(new FileInputStream(//微信的平台证书路径,线上下载的那个));ArrayList<X509Certificate> listCertificates = new ArrayList<>();listCertificates.add(certificate);WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create().withMerchant(merchantId, serialNo, PemUtil.loadPrivateKey(new FileInputStream(//商户证书的私钥文件))).withWechatpay(listCertificates);HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Accept", "application/json");httpPost.addHeader("Content-Type","application/json");httpPost.addHeader("Wechatpay-Serial",EncryptSensitive.getSerialNo(//微信的平台证书的路径,也可以线上获取,反正和你在API证书哪里看的不一样));httpPost.setEntity(new StringEntity(requestParams, "UTF-8"));CloseableHttpClient httpClient = builder.build();CloseableHttpResponse response = httpClient.execute(httpPost);int statusCode = response.getStatusLine().getStatusCode();String body = EntityUtils.toString(response.getEntity());
4. 待补充(还有查询没有踩坑)
v3特约商户进件-Java版本相关推荐
- 微信特约商户进件 JAVA 案例dome
前一段时间,小微进件接口突然关闭,根据公司业务只能对接一下微信特约商户进件接口,发现V3接口坑还是蛮多的,但是网上的例子都不是很多,抽了点时间整理了一下,欢迎个位大佬点评. 1.对应的三个证书 商户证 ...
- 微信V3接口:特约商户进件 提交申请单API 提示证书错误.
||–查看的码友,在不麻烦的情况,如果文章有用,烦请点个赞.如果没用可以留言讨论哦–|| 特约商户进件 提交申请单API 提示证书错误 最终排查弄清楚 原来证书的使用应该是: 签名中使用的证书: Au ...
- 微信服务商商户进件php,关于微信服务商特约商户进件的问题
我提交了特约商户进件信息,提交成功,并且返回了applyment_id正常,但是在用business_code 查询进件状态时返回: {"code":"PARAM_ERR ...
- JAVA 特约商户进件对接
需要配置如下: 1.微信证书私钥路径(账户中心->API安全->申请API证书->API证书管理) 2.微信商户证书路径(账户中心->API安全->申请API证书-> ...
- 金格控件java版本_金格控件宝典(问题大全.docx
金格控件宝典(问题大全 蓝凌EKP-J 蓝凌EKP-J 金格控件宝典 文档控制/Document Control 修改记录 日期 作者 版本 备注 2013-3-22 苏韶勇 V1.0 2013-5- ...
- 金格控件java版本_金格全文批注中间件软件下载
今天给大家带来金格全文批注中间件软件最新版V4.3.0.36.本款金格正文office控件最新版为安装版,支持快捷安装,相比旧版加入了很多新功能.软件支持office的word.excel.ppt程序 ...
- 金格控件java版本_金格全文批注中间件安装软件-金格正文office控件(插件集成)下载V4.3.0.36安装版-西西软件下载...
金格正文office控件(插件集成)是一款中国电信综合办公系统专用金格全文批注中间件插件集成,提供在线新建.编辑office文件和在office文件中进行签名印章.正文套红等功能,安装此控件前请确认您 ...
- 微信支付服务商,可视化进件特约商户
服务商拓展特约商户(子商户),可能出现如下问题: 1.人工录入大量商户资料,耗时耗力. 2.商户对标准费率不满意,无法说服商户先签约再帮其调整费率. 针对以上问题,微信支付面向服务商开放"特 ...
- 微信服务商快速进件,商户自己提交资料,减少工作量
大家好,我是小悟 用好技术,让经营更高效.为了减少服务商工作量,移动端服务商进件来了,分为移动端和管理端. 移动端 包括四大模块,主体资料.经营资料.法人资料和银行账户. 点击顶部步骤条可以切换,进入 ...
最新文章
- 从零开始搭建一个vue项目 -- vue-cli/cooking-cli(一)
- mysql表索引坏掉处理_一个mysql表索引被破坏的问题及解决
- Linker Scripts3--简单的链接脚本命令2-Assigning Values to Symbols
- QML for Android 加载图片资源的几种方式
- Python安装scikit-learn包
- Ubuntu 下PySpark安装
- 计算机二级vb上机操作题库,2016计算机二级《VB》上机题题库(含答案)
- 为虚幻引擎4设置Visual Studio
- 自学python能找到工作吗-学完python能找到工作么
- GStreamer入门概念(二)
- 笔记本gtx1650最好用驱动_各型号笔记本显卡定位
- 【实用的微缩版 初级开发面试题】
- 360校招——最后赢家(C++)
- php 法定节假日接口,通过百度接口获取每一个月的工作和法定假日
- android高仿微信的图片查看
- 四参数拟合算法之牛顿法
- python数据库查询数据与接口字段对比_python 接口测试response返回数据对比的方法...
- 微信逆向分析(三)——逆向分析的实现思路
- 下载文件时被提醒检测到病毒
- C语言UNIX时间戳4字节转北京时间