Skip to content

Latest commit

 

History

History
185 lines (117 loc) · 8.12 KB

CHANGELOG.md

File metadata and controls

185 lines (117 loc) · 8.12 KB

变更历史

1.4.1 - 2021-11-03

  • 新增phpstan/phpstan:^1.0支持;
  • 优化代码,消除函数内部不安全的Unsafe call to private|protected method|property ... through static::调用隐患;

1.4.0 - 2021-10-24

  • 调整Guzzle最低版本支持至v6.5.0,相应降低PHP版本要求至7.1.2,相关见#71519;
  • 调整PHPUnit最低版本至v7.5.0||v8.5.16||v9.3.5,相关问题见#4663;

详细说明可见1.3至1.4升级指南

1.3.2 - 2021-09-30

变更细节

  • 增加MediaUtil::setMeta函数,以支持特殊场景(API)下meta数据结构的特殊需求;

1.3.1 - 2021-09-22

变更细节

  • 修正APIv2上,合单支付产品xml入参是combine_mch_id引发的不适问题;

1.3.0 - 2021-09-18

变更细节

  • 增加IDE提示OpenAPI\V2&OpenAPI\V3的两个入口,接口描述文件拆分为单独的包发行,生产环境无需安装(没必要),仅面向开发环境;
  • 优化userAgent方法,使拼接User-Agent字典清晰可读;
  • 优化README,增加V3通知验签注释说明,增加v2链式otherwise处理逻辑说明;

1.2.2 - 2021-09-09

变更细节

  • at sign形式,温和提示APIv2DEP_XML_PROTOCOL_IS_REACHABLE_EOL,相关#38
  • 优化Transformer::toArray函数,对入参xml非法时,返回空array,并把最后一条错误信息温和地打入E_USER_NOTICE通道;
  • 修正Formatter::ksort排列键值时兼容问题,使用字典序(dictionary order)排序,相关#41, 感谢 @suiaiyun 报告此问题;

1.2.1 - 2021-09-06

变更细节

  • 增加加密RSA私钥的测试用例覆盖;
  • 优化文档样例及升级指南,修正错别字;
  • 优化内部withDefaults函数,使用变长参数合并初始化参数;
  • 优化Rsa::encryptRsa::decrpt方法,增加第三可选参数,以支持OPENSSL_PKCS1_PADDING填充模式的加解密;

1.2.0 - 2021-09-02

变更细节

  • 新增Rsa::from统一加载函数,以接替PemUtil::loadPrivateKey函数功能;
  • 新增Rsa::fromPkcs1, Rsa::fromPkcs8, Rsa::fromSpki语法糖,以支持从云端加载RSA公/私钥;
  • 新增RSA公钥Rsa::pkcs1ToSpki格式转换函数,入参是base64字符串;
  • 标记 PemUtil::loadPrivateKeyPemUtil::loadPrivateKeyFromString不推荐用法;
  • 详细变化可见1.1至1.2升级指南

1.1.4 - 2021-08-26

变更细节

  • 优化平台证书下载工具使用说明,增加composer exec执行方法说明;
  • 优化了一点点代码结构,使逻辑更清晰了一些;

1.1.3 - 2021-08-22

变更细节

  • 优化README,增加回调通知处理说明及样本代码;
  • 优化测试用例,使用严格限定名称方式引用系统内置函数;
  • 优化Makefile,在生成模拟证书时,避免产生0x00开头的证书序列号;
  • 调整composer.json,新增guzzlehttp/uri-template:^1.0支持;

1.1.2 - 2021-08-19

变更细节

  • 优化README密钥证书等相关术语保持一致;
  • 优化UPGRADING,增加从php_sdk_v3.0.10迁移指南;
  • 优化测试用例,完整覆盖PHP7.2/7.3/7.4/8.0 + Linux/macOS/Windows运行时;
  • 调整composer.json,去除test, phpstan命令,面向生产环境可用;

1.1.1 - 2021-08-13

变更细节

  • 优化内部中间件始终从\GuzzleHttp\Psr7\Stream::__toString取值,并在取值后,判断如果影响了Stream指针,则回滚至开始位;
  • 增加APIv2上一些特殊用法示例,增加数据签名样例;
  • 增加APIv2文档提示说明DEP_XML_PROTOCOL_IS_REACHABLE_EOL;
  • 修正APIv2上,转账至用户零钱接口,xml入参是mchid引发的不适问题;
  • 增加APIv2上转账至用户零钱接口测试用例,样例说明如何进行异常捕获;

1.1.0 - 2021-08-07

变更细节

  • 调整内部中间件栈顺序,并对APIv3的正常返回内容(20X)做精细判断,逻辑异常时使用\GuzzleHttp\Exception\RequestException抛出,应用端可捕获源返回内容;
  • 对于30X4XX,5XX返回,Guzzle基础中间件默认已处理,具体用法及使用,可参考\GuzzleHttp\RedirectMiddleware\GuzzleHttp\Middleware::httpErrors说明;
  • 详细变化可见1.0至1.1升级指南

1.0.9 - 2021-08-05

变更细节

  • 优化平台证书下载器CertificateDownloader异常处理逻辑部分,详见#22;
  • 优化README使用示例的异常处理部分;

1.0.8 - 2021-07-26

变更细节

  • 增加WeChatPay\Crypto\Hash::equals方法,用于比较APIv2哈希签名值是否相等;
  • 建议使用APIv2的商户,在回调通知场景中,使用此方法来验签,相关说明见PHPhash_equals说明;

1.0.7 - 2021-07-22

变更细节

  • 完善APIv3APIv2工厂方法初始化说明,推荐优先使用APIv3;

1.0.6 - 2021-07-21

变更细节

  • 调整 Formatter::nonce 算法,使用密码学安全的random_bytes生产BASE62随机字符串;

1.0.5 - 2021-07-08

变更细节

  • 核心代码全部转入严格类型declare(strict_types=1)校验模式;
  • 调整 Authorization 头格式顺序,debug时优先展示关键信息;
  • 调整 媒体文件MediaUtil类读取文件时,严格二进制读,避免跨平台干扰问题;
  • 增加 测试用例覆盖APIv2版用法;

1.0.4 - 2021-07-05

变更细节

  • 修正 segments 首字符大写时异常问题;
  • 调整 初始入参如果有提供handler,透传给了下游客户端问题;
  • 增加 PHP最低版本说明,相关问题 #10;
  • 增加 测试用例已基本全覆盖APIv3版用法;

1.0.3 - 2021-06-28

变更细节

  • 初始化jsonBased入参判断,平台证书及序列号结构体内不能含商户序列号,相关问题 #8;
  • 修复文档错误,相关 #7;
  • 优化 github actions,针对PHP7.2单独缓存依赖(PHP7.2下只能跑PHPUnit8PHP7.3以上均可跑PHPUnit9);
  • 增加 composer test 命令并集成进 CI 内(测试用例持续增加中);
  • 修复 PHPStan 所有遗留问题;

1.0.2 - 2021-06-24

变更细节

  • 优化了一些性能;
  • 增加 github actions 覆盖 PHP7.2/7.3/7.4/8.0 + Linux/macOS/Windows环境;
  • 提升 phpstanlevel8 最严谨级别,并修复大量遗留问题;
  • 优化 \WeChatPay\Exception\WeChatPayException 异常类接口;
  • 完善文档及平台证书下载器用法说明;

1.0.1 - 2021-06-21

变更细节

  • 优化了一些性能;
  • 修复了大量 phpstan level6 静态分析遗留问题;
  • 新增\WeChatPay\Exception\WeChatPayException异常类接口;
  • 完善文档及方法类型签名;

1.0.0 - 2021-06-18

源自 wechatpay-guzzle-middleware,不兼容源版,顾自 v1.0.0 开始。

  • APIv2 & APIv3 同质化调用SDK,默认为 APIv3 版;
  • 标记 APIv2 为不推荐调用,预期 v2.0 会移除掉;
  • 支持 同步(sync)(默认)及 异步(async) 请求服务端接口;
  • 支持 链式(chain) 请求服务端接口;