## v3.6.0 - TBD ### added - feat: 新增 `InvalidSignException`(#903) - feat: 新增 `DecryptException`(#906) - feat: 新增 `decrypt_wechat_contents` 解密微信加密内容(#912) - feat: `\Yansongda\Pay\Plugin\Wechat\Extend\Complaints\QueryDetailPlugin` 自动解密用户手机号(#912) - feat: 支持 微信/支付宝 多版本(#918) - feat: 增加 `HttpClientFactoryInterface` 方法用于工厂模式创建 http client(#921) - feat: 增加银联 `条码支付综合前置平台-被扫支付` 刷卡支付插件(#922) - feat: 增加小程序虚拟支付签名、用户签名方法(#924) ### changed - change: 查询API方法由 `find` 改为 `query`,同时参数只支持 array(#897) - change: cancel/close 的 API 参数只支持 array,不再支持 string(#900, #901) - change: 微信合单支付去掉独立的 `combine_app_id`,`combine_mch_id` 配置,复用其它配置(#909) - change: 手机网站支付快捷方式由 wap 改为 h5(#911, #915, #916) - change: `Pay` 类对外方法由所改变,如果您有自行扩展相关插件,请检查(#926) - change(internal): 按场景对 支付宝/微信/银联 插件进行分类 && 插件代码优化(#894, #909, #913, #922) - change(internal): 将 支付/微信/银联 shortcut 从 plugin 文件夹独立出来(#895, #904, #905) - change(internal): shortcut 完整标明各个插件,不使用 commonPlugin(#886) - change(internal): DirectionInterface 方法由 `parse` 改为 `guide`(#896) - change(internal): 错误代码 const 命名规则统一(#902, #903, #906, #909, #926) - change(internal): 调整 `ProviderInterface` 的返回参数,增加了 `Rocket` 返回(#909) - change(internal): 将 `call()` 方法重命名为 `shortcut()`(#914) - change(internal): `mergeCommonPlugins` 不再作为 `AbstractProvider` 的方法(#918) - change(internal): `AbstractProvider` 默认使用 `HttpClientFactoryInterface` 创建 http client(#921) - change(internal): 调整 银联 插件文件夹结构(#923) - change(internal): 替换为 `artful` API 请求框架(#926) ## v3.5.3 ### feat - feat: 增加支付宝 分账关系维护/分账查询 插件(#874) ### optimized - optimize: 支付宝公钥使用公共函数获取(#835) ## v3.5.2 ### fixed - fix: monolog 不存在时报错问题(#834) - fix: `\Yansongda\Pay\Provider\AbstractProvider::call` 方法返回值类型错误问题(#834) ## v3.5.1 ### fixed - fix: `destination` 的类型约束去掉 array(#824) ## v3.5.0 ### deleted - deleted: 移除 `Yansongda\Pay\Direction\ArrayDirection` 类(#818, #819) ## v3.4.2 ### changed - change: 只支持 hyperf3.x 版本(#815) ## v3.4.1 ### optimized - optimize: 优化无签名时错误提示(#813) - optimize: 优化预下单失败时错误提示(#814) ## v3.4.0 ### added - feat: 增加 `get_direction` 方法获取 `Direction` 对象(#803) ### changed - change: `Exception::INVALID_PARSE` 更改为 `Exception::INVALID_DIRECTION`(#804) - chore: 最低支持版本变更为 php8.0(#801) ### optimized - optimize: 优化 coding style 代码规范(#802) ## v3.3.1 ### fixed - fix: 支付宝沙箱地址(#800) ## v3.3.0 ### added - feat: 支持微信 v2 版本刷卡支付(#753) - feat: 增加申请代扣协议插件(#767) - feat: 增加支付中签约插件(#763) - feat: 增加只签约插件(#765) - feat: `shortcut` 支持 `_no_common_plugins` 参数不使用通用插件(#771) - feat: 增加委托代扣 shortcut(#773) ### deleted - delete: 移除废弃的类(#752) ### fixed - fix: 微信代金券 api 参数错误问题(#777) ### refactor - refactor: 重构 ArrayParser 类(#754) - refactor: coding style(#769) - refactor: 优化现有微信v2插件代码(#772) - refactor: 所有参数判断使用 `$payload->has()` 判断是否存在(#778) ### chore - chore: 支持 psr/http-message 2.0 版(#784) ### changed - change: 所有的 `Find*Plugin` 调整为 `Query*Plugin`(#756) - change: 插件开始装载日志由 `info` 调整为 `debug`(#755) - change: ParserInterface 签名由 `?ResponseInterface $response` 变更为 `PackerInterface $packer, ?ResponseInterface $response`(#754) - change: \Yansongda\Pay\Plugin\Wechat\RadarSignPlugin 增加 `__construct(JsonPacker $jsonPacker, XmlPacker $xmlPacker)` 方法(#753) - change: 所有 `Parser` 更名为 `Direction`(#770, #774) - change: '_type' 类型统一定义为渠道id,如: 小程序id,公众号id等;增加 '_action' 为操作类型用于 shortcut(#781) - change: 默认 container 由 `php-di/php-di` 改为 `hyperf/pimple`(#786) ## v3.2.14 ### fixed - fix: 微信投诉相关插件响应解析错误(#746) ## v3.2.13 ### optimized - optimize: 微信退款可取消 notify_url(#741) ## v3.2.12 ### added - feat: 增加获取微信平台公钥证书方法(#733) ## v3.2.11 ### docs - docs: 增加微信转账注释方便ide识别(#725) ## v3.2.10 ### fixed - fix: CallbackReceived 事件在获取到回调参数后触发(#716) ## v3.2.9 ### fixed - fix: 当配置文件出错微信解密失败后报错的问题(#698) ## v3.2.8 ### fixed - fix: 商家批次单号查询批次单时 query 参数不正确(#690) ## v3.2.7 ### fixed - fix: 微信批次单号查询批次单时 query 参数不正确(#688) ## v3.2.6 ### fixed - fix: json 中有 `&` 时解析错误(#687) ## v3.2.5 ### fixed - fix: 修复支付宝 subject 中存在 + 号回调验签不通过(#684) ## v3.2.4 ### added - feat: 银联支付(#662) ## v3.2.3 ### added - feat: 微信 Native 支付支持关联其它类型 appid(#680) ## v3.2.2 ### refactor - refactor: 优化支付宝 launch 插件代码(#678) ### deprecated - deprecated: 支付宝 `RadarPlugin`, `SignPlugin` 已废弃,使用 `RadarSignPlugin` 代替(#678) - deprecated: 微信 `SignPlugin` 已废弃,使用 `RadarSignPlugin` 代替(#678) ## v3.2.1 ### fixed - fix: `wechat_public_cert_path` 未配置时报错的问题(#674) ### refactor - refactor: 优化 `wechat_public_cert_path` 配置(#674) ## v3.2.0 ### changed - change: Function 增加命名空间(#665) - change: `get_alipay_config`,`get_wechat_config` 返回类型由 `Config` 改为 `array`(#667) - change: 支付宝转账查询接口由老版本改为为新版本(#666) ### deleted - delete: Function 中将 `get_wechat_authorization` 方法移除(#664) ### performance - perf: 支付宝中支付宝根证书、应用证书序列号在常驻进程中缓存(#668) ## v3.1.12 ### fixed - fix: 微信代金券详情 url 不正确(#663) ### refactor - refactor: 优化代码 (#661) ## v3.1.11 ### added - feat: 微信退款自动增加回调url(#649) ## v3.1.10 ### added - feat: 支付宝周期扣款签约接口(#644) ## v3.1.9 ### fixed - fix: 微信服务商模式预下单存在子商户appid时,invoke 时也应该为子商户 appid (#638) ## v3.1.8 ### fixed - fix: 提前读取响应数据造成数据错误的问题(#633, #634) ## v3.1.7 ### fixed - fix: 微信内网页支付供应商模式 sub_appid 非必填(#628) ## v3.1.6 ### fixed - fix: 微信注释中返回类型错误(#630) ## v3.1.5 ### added - feat: 微信服务商退款及查询退款支持自动 sub_mchid 参数(#619) ## v3.1.4 ### added - feat: 支持微信投诉API (#614) ## v3.1.3 ### added - feat: 配置文件增加第三方应用授权token的支持 (#602) ## v3.1.2 ### fixed - fix: alipay 中 event dispatch provider 是 wechat 的问题 #595 ## v3.1.1 ### fixed - fix: 设置 container,强制更新 config 后 container 不是设置的 container 的问题 #591 ## v3.1.0 兼容 v3.0 版本,推荐升级(#579) ### dependency - delete: 移除 `php-di/php-di` 依赖。如果您使用的框架非 `hyperf`, `laravel` 或 没有指定 `ContainerInterface`,仍需手动安装 `composer require php-di/php-di` - delete: 移除 `guzzlehttp/guzzle` 依赖。如果没有指定 `\Yansongda\Pay\Contract\HttpClientInterface` 仍需手动安装 `composer require guzzlehttp/guzzle` - upgrade: 升级 `yansongda/supports` 到 `~v3.2.0` - upgrade: 升级 `php` 最低版本到 `7.4.0` ### fixed - fix: 解决 php8.1 下 deprecated 的提示 ### kernel - refactor: 自动识别 `hyperf`, `laravel` 框架,使用相应的 `container` 减少内存占用 - refactor: 完全支持 `psr11`,可手动传入 `ContainerInterface` 使用 - changed: `Pay::config(array $config = [], $container = null)` 方法第二个参数增加为 $container,可手动传入 `ContainerInterface`/`Closure`。注意 `Closure` 需最终返回一个 `ContainerInterface` 的实例。 ## v3.0.27 ### fixed - fix: 添加分账接受人姓名加密字段错误 (#566) ## v3.0.26 ### added - feat: 支持 psr/log 2.x and 3.x (#562) ## v3.0.25 ### fixed - fix: 支持分账传递姓名 (#559) ## v3.0.24 ### added - feat: 支持使用小程序等其他类型转账 (#552) ## v3.0.23 ### fixed - fix: 未设置微信公钥证书时,加密不生效的问题 (#549) ## v3.0.22 ### fixed - fix: 微信分账传递姓名时未加密的问题 (#547) ## v3.0.21 ### added - feat: 微信转账快捷方式与加密方式支持 (#542) ## v3.0.20 ### updated - chore: 完善支付宝响应错误时的异常信息 (#530) ## v3.0.19 ### fixed - fix: 支付宝 system.oauth.token 请求参数错误 (#528) ## v3.0.18 ### added - feat: 电商收付通的退款使用 _type 增加多类型 appid (#518) ## v3.0.17 ### added - feat: 增加电商收付通的退款相关插件 (#513) ## v3.0.16 ### fixed - fixed: app 支付调起签名问题 (#1389476) ## v3.0.15 ### fixed - fixed: 下载对账单时响应解析 (#df27f95) ## v3.0.14 ### fixed - fixed: app 支付调起签名中参数大小写问题 (#7916fdd) ## v3.0.13 ### fixed - fixed: app 支付调起签名中时间戳参数大小写问题 (#510) ## v3.0.12 ### fixed - fixed: 微信小程序支付供应商模式 sub_appid 非必填 (#509) ## v3.0.11 ### added - feat: 微信 h5 支付支持关联 mini_app_id (#506) ## v3.0.10 ### added - feat: 服务商批量转账到零钱 (#503) ## v3.0.9 ### added - feat: 支持直连商户批量转账到零钱 (#501) ## v3.0.8 ### fixed - fix: 设置 bcscale 时支付宝根证书计算错误的问题 (#492, #494) ## v3.0.7 ### fixed - fix: 支付宝 wap/web 支付 get 方法时url拼接问题 (#488) ## v3.0.6 ### optimized - chore: 优化服务商模式小程序下单场景 (#487) ## v3.0.5 ### fixed - fix: 服务商模式交易查询 (#483) ## v3.0.4 ### added - feat: 支持服务商模式 (#479) - feat: 支持微信服务商分账功能 (#480) ## v3.0.3 ### added - feat: 公钥证书增加 cer 后缀支持 (#d22e29a) ## v3.0.2 ### fixed - 修复微信支付关闭订单时报错问题 (#475) ## v3.0.1 ### fixed - 修复微信支付关闭订单时报错问题 (#475)