Compare commits

...

10 Commits

Author SHA1 Message Date
李东云
633bf585e1 build: 换成satis 2025-12-24 16:01:35 +08:00
李东云
0573ff595f chore(release): 1.13.2 2025-12-24 15:26:41 +08:00
李东云
72004d3916 chore(release): 1.13.1 2025-12-24 14:11:33 +08:00
李东云
7ade038f0f fix(ProductRepo): 将isset检查改为!empty检查以确保数据有效性 2025-12-24 14:11:13 +08:00
李东云
175a170dec chore(release): 1.13.0 2025-12-02 17:59:45 +08:00
李东云
19e95016fa feat(发票): 为发送发票接口添加可选邮箱参数
在发送发票接口中添加可选的邮箱参数,允许指定接收发票的邮箱地址。当不指定邮箱时,保持原有行为不变。
2025-12-02 17:59:18 +08:00
李东云
6fd7f2f421 chore(release): 1.12.4 2025-12-02 16:05:11 +08:00
李东云
1d1cdd7829 fix(invoice): 修正发票金额计算逻辑
- 将金额乘以100改为除以100以获得正确的数值
- 确保货币金额在存储前被正确转换为浮点数
- 保留两位小数精度以匹配财务数据标准
2025-12-02 16:04:53 +08:00
李东云
98fa6262a9 chore(release): 1.12.3 2025-12-01 15:32:07 +08:00
李东云
7d836f50df chore(release): 1.12.2 2025-12-01 15:18:19 +08:00
6 changed files with 294 additions and 153 deletions

View File

@@ -1,4 +1,31 @@
# 版本更新日志
### [1.13.2](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.13.1...v1.13.2) (2025-12-24)
### [1.13.1](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.13.0...v1.13.1) (2025-12-24)
### 🐛 Bug Fixes | Bug 修复
* **ProductRepo:** 将isset检查改为!empty检查以确保数据有效性 ([7ade038](http://124.126.16.154:8888/singularity/hdk-pay/commit/7ade038f0fb1c6a857428d75667ccb2289d392fd))
## [1.13.0](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.12.4...v1.13.0) (2025-12-02)
### ✨ Features | 新功能
* **发票:** 为发送发票接口添加可选邮箱参数 ([19e9501](http://124.126.16.154:8888/singularity/hdk-pay/commit/19e95016fae1230cce88b3ead5c9ae2474bfdafc))
### [1.12.4](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.12.3...v1.12.4) (2025-12-02)
### 🐛 Bug Fixes | Bug 修复
* **invoice:** 修正发票金额计算逻辑 ([1d1cdd7](http://124.126.16.154:8888/singularity/hdk-pay/commit/1d1cdd7829942984f4dcdd16e7e0d1ba9ac9d1ce))
### [1.12.3](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.12.2...v1.12.3) (2025-12-01)
### [1.12.2](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.12.1...v1.12.2) (2025-12-01)
### [1.12.1](http://124.126.16.154:8888/singularity/hdk-pay/compare/v1.12.0...v1.12.1) (2025-12-01)

View File

@@ -45,7 +45,8 @@
"sort-packages": true,
"allow-plugins": {
"pestphp/pest-plugin": true
}
},
"secure-http": false
},
"scripts": {
"post-root-package-install": [
@@ -60,14 +61,14 @@
"analyse": "phpstan analyse --memory-limit 300M -l 0 -c phpstan.neon ./src ./config"
},
"repositories": {
"nest": {
"satis": {
"type": "composer",
"url": "https://nest.doylee.cn/api/packages/HDK/composer"
"url": "https://satis.luxcreo.cn/"
},
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
},
"version": "1.12.1"
"version": "1.13.2"
}

388
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ffec1d2a9b50d8653479b5adb06fb851",
"content-hash": "a61c0ead9bd06d776dbf954702087089",
"packages": [
{
"name": "carbonphp/carbon-doctrine-types",
@@ -83,16 +83,16 @@
},
{
"name": "composer/ca-bundle",
"version": "1.5.7",
"version": "1.5.10",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "d665d22c417056996c59019579f1967dfe5c1e82"
"reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/d665d22c417056996c59019579f1967dfe5c1e82",
"reference": "d665d22c417056996c59019579f1967dfe5c1e82",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/961a5e4056dd2e4a2eedcac7576075947c28bf63",
"reference": "961a5e4056dd2e4a2eedcac7576075947c28bf63",
"shasum": "",
"mirrors": [
{
@@ -145,7 +145,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
"source": "https://github.com/composer/ca-bundle/tree/1.5.7"
"source": "https://github.com/composer/ca-bundle/tree/1.5.10"
},
"funding": [
{
@@ -155,13 +155,9 @@
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2025-05-26T15:08:54+00:00"
"time": "2025-12-08T15:06:51+00:00"
},
{
"name": "composer/class-map-generator",
@@ -1680,16 +1676,16 @@
},
{
"name": "hyperf/collection",
"version": "v3.1.63",
"version": "v3.1.64",
"source": {
"type": "git",
"url": "https://github.com/hyperf/collection.git",
"reference": "1e4f7d9ee01a83a54f9e095a82bd556805a67f5c"
"reference": "8f43bd741ffae01208401791687830c6df32da83"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/collection/zipball/1e4f7d9ee01a83a54f9e095a82bd556805a67f5c",
"reference": "1e4f7d9ee01a83a54f9e095a82bd556805a67f5c",
"url": "https://api.github.com/repos/hyperf/collection/zipball/8f43bd741ffae01208401791687830c6df32da83",
"reference": "8f43bd741ffae01208401791687830c6df32da83",
"shasum": "",
"mirrors": [
{
@@ -1747,7 +1743,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-11-06T07:07:43+00:00"
},
{
"name": "hyperf/conditionable",
@@ -2172,16 +2168,16 @@
},
{
"name": "hyperf/coroutine",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/coroutine.git",
"reference": "6eef27161d44c7c2ac353591b7428a100aa87797"
"reference": "060c276febdb9a079b54f5ca737b972ee6013d09"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/coroutine/zipball/6eef27161d44c7c2ac353591b7428a100aa87797",
"reference": "6eef27161d44c7c2ac353591b7428a100aa87797",
"url": "https://api.github.com/repos/hyperf/coroutine/zipball/060c276febdb9a079b54f5ca737b972ee6013d09",
"reference": "060c276febdb9a079b54f5ca737b972ee6013d09",
"shasum": "",
"mirrors": [
{
@@ -2238,20 +2234,20 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-02T14:30:56+00:00"
},
{
"name": "hyperf/di",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/di.git",
"reference": "4020913f3f9497bf5067f280374186b10ce8c2b6"
"reference": "1bfc22ed3f6d1328d10d902ff0e5fdc11ba9faa3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/di/zipball/4020913f3f9497bf5067f280374186b10ce8c2b6",
"reference": "4020913f3f9497bf5067f280374186b10ce8c2b6",
"url": "https://api.github.com/repos/hyperf/di/zipball/1bfc22ed3f6d1328d10d902ff0e5fdc11ba9faa3",
"reference": "1bfc22ed3f6d1328d10d902ff0e5fdc11ba9faa3",
"shasum": "",
"mirrors": [
{
@@ -2325,7 +2321,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-01T03:37:59+00:00"
},
{
"name": "hyperf/dispatcher",
@@ -2800,16 +2796,16 @@
},
{
"name": "hyperf/guzzle",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/guzzle.git",
"reference": "2fb09b4fd5bb77dea06f5282ce9d0035a6555c80"
"reference": "4e4cd238be3ef8980164fea5b79eec7d1e1953b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/guzzle/zipball/2fb09b4fd5bb77dea06f5282ce9d0035a6555c80",
"reference": "2fb09b4fd5bb77dea06f5282ce9d0035a6555c80",
"url": "https://api.github.com/repos/hyperf/guzzle/zipball/4e4cd238be3ef8980164fea5b79eec7d1e1953b5",
"reference": "4e4cd238be3ef8980164fea5b79eec7d1e1953b5",
"shasum": "",
"mirrors": [
{
@@ -2858,7 +2854,7 @@
],
"support": {
"issues": "https://github.com/hyperf/guzzle/issues",
"source": "https://github.com/hyperf/guzzle/tree/v3.1.63"
"source": "https://github.com/hyperf/guzzle/tree/v3.1.65"
},
"funding": [
{
@@ -2870,20 +2866,20 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-04T02:38:56+00:00"
},
{
"name": "hyperf/http-message",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/http-message.git",
"reference": "9309ed429e5bee82cce8c05809e66137ef1ead33"
"reference": "74fbf1669992c2476bea4b4aca91e528159066b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/http-message/zipball/9309ed429e5bee82cce8c05809e66137ef1ead33",
"reference": "9309ed429e5bee82cce8c05809e66137ef1ead33",
"url": "https://api.github.com/repos/hyperf/http-message/zipball/74fbf1669992c2476bea4b4aca91e528159066b5",
"reference": "74fbf1669992c2476bea4b4aca91e528159066b5",
"shasum": "",
"mirrors": [
{
@@ -2934,7 +2930,7 @@
],
"support": {
"issues": "https://github.com/hyperf/http-message/issues",
"source": "https://github.com/hyperf/http-message/tree/v3.1.63"
"source": "https://github.com/hyperf/http-message/tree/v3.1.65"
},
"funding": [
{
@@ -2946,20 +2942,20 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-01T03:37:59+00:00"
},
{
"name": "hyperf/http-server",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/http-server.git",
"reference": "027477410b08e0a22d4c82878931c337f8967b45"
"reference": "95936e21e47a121df35d02296448b2439f9997f0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/http-server/zipball/027477410b08e0a22d4c82878931c337f8967b45",
"reference": "027477410b08e0a22d4c82878931c337f8967b45",
"url": "https://api.github.com/repos/hyperf/http-server/zipball/95936e21e47a121df35d02296448b2439f9997f0",
"reference": "95936e21e47a121df35d02296448b2439f9997f0",
"shasum": "",
"mirrors": [
{
@@ -3037,7 +3033,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-01T03:37:59+00:00"
},
{
"name": "hyperf/logger",
@@ -3178,16 +3174,16 @@
},
{
"name": "hyperf/paginator",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/paginator.git",
"reference": "fe3673c61f4ab1ea180f05fe4a19dd300c80e372"
"reference": "4694fb8650bd7fba91bd259f57d8189e6ac2d258"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/paginator/zipball/fe3673c61f4ab1ea180f05fe4a19dd300c80e372",
"reference": "fe3673c61f4ab1ea180f05fe4a19dd300c80e372",
"url": "https://api.github.com/repos/hyperf/paginator/zipball/4694fb8650bd7fba91bd259f57d8189e6ac2d258",
"reference": "4694fb8650bd7fba91bd259f57d8189e6ac2d258",
"shasum": "",
"mirrors": [
{
@@ -3250,7 +3246,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-01T03:37:59+00:00"
},
{
"name": "hyperf/pipeline",
@@ -3476,16 +3472,16 @@
},
{
"name": "hyperf/resource",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/resource.git",
"reference": "413b02d57574d2947b0d3af4b3a5bd5df8bf91d8"
"reference": "f8b8ad58f74140551a950c22de7a8dcb18c5c591"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/resource/zipball/413b02d57574d2947b0d3af4b3a5bd5df8bf91d8",
"reference": "413b02d57574d2947b0d3af4b3a5bd5df8bf91d8",
"url": "https://api.github.com/repos/hyperf/resource/zipball/f8b8ad58f74140551a950c22de7a8dcb18c5c591",
"reference": "f8b8ad58f74140551a950c22de7a8dcb18c5c591",
"shasum": "",
"mirrors": [
{
@@ -3550,7 +3546,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-01T03:37:59+00:00"
},
{
"name": "hyperf/serializer",
@@ -3774,16 +3770,16 @@
},
{
"name": "hyperf/stringable",
"version": "v3.1.63",
"version": "v3.1.65",
"source": {
"type": "git",
"url": "https://github.com/hyperf/stringable.git",
"reference": "aa20da362306cdc64ed7ee2cc7c2251642631557"
"reference": "31a468649f7184c18f9dcdfe99fd28757a5bbb75"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hyperf/stringable/zipball/aa20da362306cdc64ed7ee2cc7c2251642631557",
"reference": "aa20da362306cdc64ed7ee2cc7c2251642631557",
"url": "https://api.github.com/repos/hyperf/stringable/zipball/31a468649f7184c18f9dcdfe99fd28757a5bbb75",
"reference": "31a468649f7184c18f9dcdfe99fd28757a5bbb75",
"shasum": "",
"mirrors": [
{
@@ -3848,7 +3844,7 @@
"type": "open_collective"
}
],
"time": "2025-10-30T01:44:44+00:00"
"time": "2025-12-04T03:05:16+00:00"
},
{
"name": "hyperf/support",
@@ -4116,16 +4112,16 @@
},
{
"name": "justinrainbow/json-schema",
"version": "6.6.1",
"version": "6.6.3",
"source": {
"type": "git",
"url": "https://github.com/jsonrainbow/json-schema.git",
"reference": "fd8e5c6b1badb998844ad34ce0abcd71a0aeb396"
"reference": "134e98916fa2f663afa623970af345cd788e8967"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/fd8e5c6b1badb998844ad34ce0abcd71a0aeb396",
"reference": "fd8e5c6b1badb998844ad34ce0abcd71a0aeb396",
"url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/134e98916fa2f663afa623970af345cd788e8967",
"reference": "134e98916fa2f663afa623970af345cd788e8967",
"shasum": "",
"mirrors": [
{
@@ -4136,7 +4132,7 @@
},
"require": {
"ext-json": "*",
"marc-mabe/php-enum": "^4.0",
"marc-mabe/php-enum": "^4.4",
"php": "^7.2 || ^8.0"
},
"require-dev": {
@@ -4191,9 +4187,9 @@
],
"support": {
"issues": "https://github.com/jsonrainbow/json-schema/issues",
"source": "https://github.com/jsonrainbow/json-schema/tree/6.6.1"
"source": "https://github.com/jsonrainbow/json-schema/tree/6.6.3"
},
"time": "2025-11-07T18:30:29+00:00"
"time": "2025-12-02T10:21:33+00:00"
},
{
"name": "laminas/laminas-mime",
@@ -4734,16 +4730,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.73.0",
"version": "3.9.1",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
"reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075"
"reference": "ced71f79398ece168e24f7f7710462f462310d4d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/9228ce90e1035ff2f0db84b40ec2e023ed802075",
"reference": "9228ce90e1035ff2f0db84b40ec2e023ed802075",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ced71f79398ece168e24f7f7710462f462310d4d",
"reference": "ced71f79398ece168e24f7f7710462f462310d4d",
"shasum": "",
"mirrors": [
{
@@ -4753,29 +4749,28 @@
]
},
"require": {
"carbonphp/carbon-doctrine-types": "*",
"carbonphp/carbon-doctrine-types": "<100.0",
"ext-json": "*",
"php": "^7.1.8 || ^8.0",
"php": "^8.1",
"psr/clock": "^1.0",
"symfony/clock": "^6.3 || ^7.0",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
"symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"require-dev": {
"doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
"doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
"ondrejmirtes/better-reflection": "<6",
"phpmd/phpmd": "^2.9",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12.99 || ^1.7.14",
"phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
"squizlabs/php_codesniffer": "^3.4"
"doctrine/dbal": "^3.6.3 || ^4.0",
"doctrine/orm": "^2.15.2 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.57.2",
"kylekatarnls/multi-tester": "^2.5.3",
"ondrejmirtes/better-reflection": "^6.25.0.4",
"phpmd/phpmd": "^2.15.0",
"phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan": "^1.11.2",
"phpunit/phpunit": "^10.5.20",
"squizlabs/php_codesniffer": "^3.9.0"
},
"bin": [
"bin/carbon"
@@ -4826,8 +4821,8 @@
],
"support": {
"docs": "https://carbon.nesbot.com/docs",
"issues": "https://github.com/briannesbitt/Carbon/issues",
"source": "https://github.com/briannesbitt/Carbon"
"issues": "https://github.com/CarbonPHP/carbon/issues",
"source": "https://github.com/CarbonPHP/carbon"
},
"funding": [
{
@@ -4843,7 +4838,7 @@
"type": "tidelift"
}
],
"time": "2025-01-08T20:10:23+00:00"
"time": "2025-05-01T19:51:51+00:00"
},
{
"name": "nikic/fast-route",
@@ -4903,16 +4898,16 @@
},
{
"name": "nikic/php-parser",
"version": "v4.19.4",
"version": "v4.19.5",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2"
"reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2",
"reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/51bd93cc741b7fc3d63d20b6bdcd99fdaa359837",
"reference": "51bd93cc741b7fc3d63d20b6bdcd99fdaa359837",
"shasum": "",
"mirrors": [
{
@@ -4933,11 +4928,6 @@
"bin/php-parse"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.9-dev"
}
},
"autoload": {
"psr-4": {
"PhpParser\\": "lib/PhpParser"
@@ -4959,9 +4949,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.19.5"
},
"time": "2024-09-29T15:01:53+00:00"
"time": "2025-12-06T11:45:25+00:00"
},
{
"name": "php-di/phpdoc-reader",
@@ -6128,16 +6118,11 @@
},
{
"name": "singularity/hdk-core",
"version": "1.0.2",
"version": "1.0.3",
"source": {
"type": "git",
"url": "https://nest.doylee.cn/HDK/hdk-core",
"reference": "1.0.2"
},
"dist": {
"type": "zip",
"url": "https://nest.doylee.cn/api/packages/HDK/composer/files/singularity%2Fhdk-core/1.0.2/singularity-hdk-core.1.0.2.zip",
"shasum": "90a71e0e0040dae42fbd738c3b73c757ff6499c4"
"url": "http://124.126.16.154:8888/singularity/HyperfDevelopmentKitCore.git",
"reference": "c6464880c464306b39249ac04976a8945cfc227c"
},
"require": {
"composer/composer": ">=2.0",
@@ -6160,7 +6145,7 @@
"lmc/http-constants": "^1.2.0",
"myclabs/php-enum": "^1.8.4",
"php": ">=8.1",
"roave/dont": "^1.6.0",
"roave/dont": "*",
"symfony/http-foundation": "^6.4",
"symfony/polyfill-php81": "^1.28",
"symfony/polyfill-php82": "^1.28",
@@ -6220,6 +6205,38 @@
"Singularity\\HDK\\Test\\Core\\": "tests/"
}
},
"archive": {
"exclude": [
".idea",
"tests",
"scripts",
"Dockerfile",
".gitignore",
".php-cs-fixer.*",
".phpunit.result.cache",
"phpstan.dist.neon",
"phpunit.xml"
]
},
"scripts": {
"post-root-package-install": [],
"test": [
"rm -rf runtime",
"pest --coroutine --prepend tests/bootstrap.php --colors=always"
],
"cs-fix": [
"vendor/bin/php-cs-fixer fix $1 --rules=@PSR12 --allow-risky=yes"
],
"analyse": [
"vendor/bin/phpstan analyse $1"
],
"ci": [
"@analyse publish/ src/ tests/",
"@cs-fix",
"@test",
"echo CI Success"
]
},
"license": [
"MIT"
],
@@ -6230,7 +6247,7 @@
}
],
"description": "Common Hyperf Development Kit",
"time": "2025-09-26T16:56:07+08:00"
"time": "2025-11-25T09:24:21+00:00"
},
{
"name": "swow/psr7-plus",
@@ -6288,6 +6305,90 @@
},
"time": "2023-06-15T09:18:11+00:00"
},
{
"name": "symfony/clock",
"version": "v7.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
"reference": "9169f24776edde469914c1e7a1442a50f7a4e110"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110",
"reference": "9169f24776edde469914c1e7a1442a50f7a4e110",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": ">=8.2",
"psr/clock": "^1.0",
"symfony/polyfill-php83": "^1.28"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"type": "library",
"autoload": {
"files": [
"Resources/now.php"
],
"psr-4": {
"Symfony\\Component\\Clock\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Decouples applications from the system clock",
"homepage": "https://symfony.com",
"keywords": [
"clock",
"psr20",
"time"
],
"support": {
"source": "https://github.com/symfony/clock/tree/v7.4.0"
},
"funding": [
{
"url": "https://symfony.com/sponsor",
"type": "custom"
},
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2025-11-12T15:39:26+00:00"
},
{
"name": "symfony/console",
"version": "v7.3.6",
@@ -7799,16 +7900,16 @@
},
{
"name": "symfony/translation",
"version": "v6.4.23",
"version": "v7.2.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "de8afa521e04a5220e9e58a1dc99971ab7cac643"
"reference": "00b927b4948d49afbf5013411c0a91a1cea8b087"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/de8afa521e04a5220e9e58a1dc99971ab7cac643",
"reference": "de8afa521e04a5220e9e58a1dc99971ab7cac643",
"url": "https://api.github.com/repos/symfony/translation/zipball/00b927b4948d49afbf5013411c0a91a1cea8b087",
"reference": "00b927b4948d49afbf5013411c0a91a1cea8b087",
"shasum": "",
"mirrors": [
{
@@ -7818,20 +7919,20 @@
]
},
"require": {
"php": ">=8.1",
"php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
"symfony/config": "<5.4",
"symfony/console": "<5.4",
"symfony/dependency-injection": "<5.4",
"symfony/config": "<6.4",
"symfony/console": "<6.4",
"symfony/dependency-injection": "<6.4",
"symfony/http-client-contracts": "<2.5",
"symfony/http-kernel": "<5.4",
"symfony/http-kernel": "<6.4",
"symfony/service-contracts": "<2.5",
"symfony/twig-bundle": "<5.4",
"symfony/yaml": "<5.4"
"symfony/twig-bundle": "<6.4",
"symfony/yaml": "<6.4"
},
"provide": {
"symfony/translation-implementation": "2.3|3.0"
@@ -7839,17 +7940,17 @@
"require-dev": {
"nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
"symfony/config": "^5.4|^6.0|^7.0",
"symfony/console": "^5.4|^6.0|^7.0",
"symfony/dependency-injection": "^5.4|^6.0|^7.0",
"symfony/finder": "^5.4|^6.0|^7.0",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
"symfony/dependency-injection": "^6.4|^7.0",
"symfony/finder": "^6.4|^7.0",
"symfony/http-client-contracts": "^2.5|^3.0",
"symfony/http-kernel": "^5.4|^6.0|^7.0",
"symfony/intl": "^5.4|^6.0|^7.0",
"symfony/http-kernel": "^6.4|^7.0",
"symfony/intl": "^6.4|^7.0",
"symfony/polyfill-intl-icu": "^1.21",
"symfony/routing": "^5.4|^6.0|^7.0",
"symfony/routing": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
"symfony/yaml": "^5.4|^6.0|^7.0"
"symfony/yaml": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -7880,7 +7981,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v6.4.23"
"source": "https://github.com/symfony/translation/tree/v7.2.9"
},
"funding": [
{
@@ -7891,12 +7992,16 @@
"url": "https://github.com/fabpot",
"type": "github"
},
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
"time": "2025-06-26T21:24:02+00:00"
"time": "2025-07-30T17:31:35+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -8579,6 +8684,7 @@
"type": "github"
}
],
"abandoned": true,
"time": "2024-11-28T08:49:14+00:00"
},
{
@@ -9440,16 +9546,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
"version": "5.6.4",
"version": "5.6.5",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2"
"reference": "90614c73d3800e187615e2dd236ad0e2a01bf761"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90a04bcbf03784066f16038e87e23a0a83cee3c2",
"reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761",
"reference": "90614c73d3800e187615e2dd236ad0e2a01bf761",
"shasum": "",
"mirrors": [
{
@@ -9504,9 +9610,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.4"
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5"
},
"time": "2025-11-17T21:13:10+00:00"
"time": "2025-11-27T19:50:05+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -11262,16 +11368,16 @@
},
{
"name": "webmozart/assert",
"version": "1.12.0",
"version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
"reference": "541057574806f942c94662b817a50f63f7345360"
"reference": "9be6926d8b485f55b9229203f962b51ed377ba68"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/541057574806f942c94662b817a50f63f7345360",
"reference": "541057574806f942c94662b817a50f63f7345360",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68",
"reference": "9be6926d8b485f55b9229203f962b51ed377ba68",
"shasum": "",
"mirrors": [
{
@@ -11320,9 +11426,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.12.0"
"source": "https://github.com/webmozarts/assert/tree/1.12.1"
},
"time": "2025-10-20T12:43:39+00:00"
"time": "2025-10-29T15:56:20+00:00"
}
],
"aliases": [],

View File

@@ -1,4 +1,5 @@
<?php
/**
* InvoiceRepoInterface.php@Pay
*
@@ -33,10 +34,11 @@ interface InvoiceRepoInterface
/**
* @param string $invoiceNo
* @param string|null $email
* @return void
* @throws GuzzleException
*/
public function send(string $invoiceNo): void;
public function send(string $invoiceNo, ?string $email): void;
/**
* @param string $invoiceNo

View File

@@ -47,7 +47,7 @@ final class InvoiceRepo extends AbstractRepo implements InvoiceRepoInterface
'country' => $cmd->country,
'zip' => $cmd->zipCode,
'price' => [
'amount' => (float)bcmul($money->getAmount(), '100', 2),
'amount' => (float)bcdiv($money->getAmount(), '100', 2),
'currency' => [
'code' => $money->getCurrency()->getCode(),
'symbol' => $cmd->currencySymbol,
@@ -85,12 +85,17 @@ final class InvoiceRepo extends AbstractRepo implements InvoiceRepoInterface
/**
* @inheritDoc
*/
public function send(string $invoiceNo): void
public function send(string $invoiceNo, ?string $email): void
{
if (empty($invoiceNo)) {
throw new ValidateException(message: 'invoice no is required.');
}
$this->requestService->requestGet(url: "/rpc/v2/invoice/invoices/$invoiceNo/email");
$this->requestService->requestGet(
url: "/rpc/v2/invoice/invoices/$invoiceNo/email",
data: [
'email' => $email,
],
);
}
/**

View File

@@ -148,7 +148,7 @@ final class ProductRepo extends AbstractRepo implements RechargeProductRepoInter
$result = Json::decode($content);
return new RechargeProduct(
oneTime: isset($result['one_time'])
oneTime: !empty($result['one_time'])
? new ProductItem(
id: $result['one_time']['id'],
description: $result['one_time']['name'],
@@ -164,7 +164,7 @@ final class ProductRepo extends AbstractRepo implements RechargeProductRepoInter
),
)
: null,
renew: isset($result['renew'])
renew: !empty($result['renew'])
? new ProductItem(
id: $result['renew']['id'],
description: $result['renew']['name'],