微信支付平台技术文档的一个小坑
一、注意服务器的时间与微信接口是否相同,如时间不同接口也不通即使是0.1秒
二、调用支付相关接口需要加载私钥,和证书两个认证文件,官网文档给了java和php两个demo,逻辑应该是一样的,但实际却走了两个逻辑,加载私钥过程php和java是一样的。加载证书java是需要实时下载(个人认为没必要每次使用平台接口都要先去下载证书,因为平台有说明证书有效期是5年),php版demo就很简单想加载私钥一样直接加载事先下载好的证书。减少了不必要的通信,同时也减少了通信失败的可能。
java版demo
public void setup() throws IOException {// 加载商户私钥(privateKey:私钥字符串)PrivateKey merchantPrivateKey = PemUtil.loadPrivateKey(new ByteArrayInputStream(privateKey.getBytes("utf-8")));// 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3密钥)这步会去下载证书,不同于php版AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(new WechatPay2Credentials(mchId, new PrivateKeySigner(mchSerialNo, merchantPrivateKey)),apiV3Key.getBytes("utf-8"));/* //实际可以像加载私钥一样直接加载证书X509Certificate wechatpayCertificate = PemUtil.loadCertificate(new ByteArrayInputStream(certificate.getBytes("utf-8")));*/ // 初始化httpClienthttpClient = WechatPayHttpClientBuilder.create().withMerchant(mchId, mchSerialNo, merchantPrivateKey).withValidator(new WechatPay2Validator(verifier)).build();
}
php版demo
// 商户相关配置,
$merchantId = '1000100'; // 商户号
$merchantSerialNumber = 'XXXXXXXXXX'; // 商户API证书序列号
$merchantPrivateKey = PemUtil::loadPrivateKey('./path/to/mch/private/key.pem'); // 私钥 $wechatpayCertificate = PemUtil::loadCertificate('./path/to/wechatpay/cert.pem'); // 证书// 构造一个WechatPayMiddleware
$wechatpayMiddleware = WechatPayMiddleware::builder()->withMerchant($merchantId, $merchantSerialNumber, $merchantPrivateKey) // 传入商户相关配置->withWechatPay([ $wechatpayCertificate ]) // 可传入多个微信支付平台证书,参数类型为array->build();
微信支付平台技术文档的一个小坑相关推荐
- atitit.微信支付的教程文档 attilax总结
atitit.微信支付的教程文档 attilax总结 1. 支付流程概览 1 2. 设置支付起始目录 host/app/paydir/ 1 3. 设置oauth验证域名 1 4. 测试目录 可以使 ...
- 微信|公众平台开发者文档
微信|公众平台开发者文档 http://mp.weixin.qq.com/wiki/3/ecfed6e1a0a03b5f35e5efac98e864b7.html 爱父母项目(提示用户名,密码在项目文 ...
- wps在线预览接口_金山文档在线编辑 - 快速接入 - 《WPS开放平台技术文档》 - 书栈网 · BookStack...
快速接入 一.申请和上线流程如下: 1.申请Appid和SecretKey 需要前往https://open.wps.cn 注册服务商,并且申请开通金山文档在线编辑服务. 2.实现回调接口 根据本文档 ...
- android微信支付插件,AppCan文档中心-Android微信插件接入指引
开发者在使用APPCAN平台提供的微信插件时,需要配置相关的包名,AppID和签名.具体步骤如下(以大众版打包为例): 1. 获取apk相关的包名和签名 1.1包名 自定义包名(推荐使用) APPCA ...
- 微信公众号用户标签php,用户标签管理 - 微信公众平台开发者文档 - php中文网手册...
开发者可以使用用户标签管理的相关接口,实现对公众号的标签进行创建.查询.修改.删除等操作,也可以对用户进行打标签.取消标签等操作. 标签管理 1. 创建标签 一个公众号,最多可以创建100个标签. 接 ...
- 微信公众平台开发者文档
http://mp.weixin.qq.com/wiki/index.php?title=接入指南
- 微信 公众平台开发者文档
官方地址: https://mp.weixin.qq.com/wiki/16/52e198333f5c127ddd5c45e875191b14.html
- python使用微信设置-微信 python 接口 -- itchat 文档
itchat 一. 安装 $ pip install itchat 特殊的字典使用方式 通过打印 itchat 的用户以及注册消息的参数, 可以发现这些值都是字典. 但实际上 itchat 精心构造了 ...
- 如何写一篇好的技术文档
最近在公司内部审查(Review)一篇详细设计文档时,对于文档作者所写的文档觉得很多地方需要改进.对于其中所存在的值得提高的地方,我想不是我们中国软件行业的个别问题,相反,存在一定的普遍性.以下我列出 ...
最新文章
- ThinkPHP 模板循环输出 Volist 标签
- idea从mapper接口跳到xml文件
- MyBatis源码-深入理解MyBatis Executor的设计思想
- np.c_与np.r_
- 下拉菜单实现树状结构_树形图:复杂层次结构的数据可视化
- 在ubuntu下面安装glew
- node sqlite 插入数据_方便且实用,Python内置的轻量级数据库实操
- OpenStack Trove2
- 2台主机极致实现双主复制架构及MMM
- 锐捷EG易网关与NBR路由器命令执行漏洞-2
- 微软模拟飞行10 简体中文豪华版 2DVD
- 学习笔记16-HC05
- java 添加图片到word中,并导出word到前端
- 医疗器械A类B类C类物料区分
- 最新鸽哒IM即时通讯系统源码+带安装教程,正常运行版,无报错
- vscode使用wsl远程调试linux代码
- 【小程序】384- 如何一人五天开发完复杂小程序(前端必看)
- 汕头示范新品种技术 国稻种芯·中国水稻节:广东水稻粒粒归仓
- Apache Pulsar的数据写入和读取流程,及读写异常处理流程
- 移动硬盘不能识别的常见7种解决方案 ~ By 逆天经验