微信支付PHP开发对接18讲——03: AesInterface AES抽象接口

AES 加解密的块大小,固定是16字节的,提供加密算法常量 ALGO_AES_256_GCMALGO_AES_256_ECB,从字面量上给类实现提供了可以直接使用的公共加/解密算法。另外3点:1. PHP7 可以在接口文件中定义公共类常量; 2. 阐述高等级加密AES的两个基础知识点; 3. 抽象公共加/解密函数接口,引述程序设计中的协变设计规则;

微信支付PHP开发对接18讲——02: RSA-OAEP非对称加解密重构

有开发者反馈,先前的加解密Util\SensitiveInfoCrypto实现,用法看似简单,其实用起来’坑’蛮多的。’坑’点在于:初始化所需的私钥公钥(证书),在业务场景下是非配对的!公钥(证书)加密时,所用的公钥(证书)平台证书(公钥),而解密时所需的私钥,是商户私钥。并且,加解密稍不注意就会干扰到业务处理(初始化参数以及切换stage稍微繁琐)。遂重构一遍,命名为 Crypto\Rsa 类。

再造一遍微信支付v2版的nodejs版SDK

在2020这个时间节点,之所以还要再造一遍微信支付v2(相对于APIv3来说)的SDK轮子,实属是无奈之举,线下交易场景常见的付款码支付及退款功能,官方当下还没有开放出来v3版的,只能借助v2接口来处理; wechatpay-axios-plugin 从一开始目标就是为云原生而设计,遂再造一遍轮子,也抽出一些共生方法,为v3而用。

微信支付APIv3接口文档及开发者工具

官方文档侧重点是业务介绍,感觉是顺带把接口释义也做了下,对开发来说,请求方法、URI地址、数据结构、数据类型 这些才是关键点,本项目只摘录这些点,期望能给开发带来便利;另外这个项目其实是附产,本是为了生成代码,结果*悲伤*有一大筐,先就开源介绍一下这个项目吧。

这很可能是NodeJS中用来开发微信支付APIv3的顶级SDK之一

微信支付APIv3使用了许多成熟且牛逼的接口设计(RESTful API with JSON over HTTP),数据交换使用非对称(RSA)加/解密方案,上行数据采用(RSA)私钥证书签名,下行数据采用(RSA)公钥证书验签。本开发包使用NodeJS原生方法完整实现了微信支付APIv3的请求应答工作,HTTP客户端采用成熟的Axios,通过向Axios注册拦截器完整实现微信支付APIv3上行数据签名,下行数据验签。包括收单、媒体文件上传、发核券以及账单下载解析功能,同时提供官方应答证书命令行下载工具。

使用Guzzle标准包,向微信支付V3官方中间件添加媒体上传类

通过使用 GuzzlHttp\Psr7\Fnstream 修饰 GuzzlHttp\Psr7\MultipartStream 类,使微信支付官方wechatpay-guzzle-middleware支持媒体文件上传 。 同时在处理文件上传时,优化了业务代码获取文件二进制内容及对内容做 sha256 计算。 不侵入官方包,使用起来相当简单,仅在需要上传媒体文件时引入并实例化即可。