From f141989a8d7c6055d0d740619cc0660a1ea0ef7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=B8=9C=E4=BA=91?= Date: Tue, 26 Aug 2025 16:02:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(Order):=20=E9=87=8D=E6=9E=84=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=B5=84=E6=BA=90=E4=BB=A5=E6=94=AF=E6=8C=81=E7=BB=8F?= =?UTF-8?q?=E5=85=B8=E8=AE=A2=E5=8D=95=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 parseClassicOrder 方法用于解析经典订单 - 修改 toArray 方法,根据订单类型选择性调用 parseClassicOrder - 引入 Money库以处理金额和货币 --- src/Resource/V2/Order.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/Resource/V2/Order.php b/src/Resource/V2/Order.php index 7b96bab..8f22c92 100644 --- a/src/Resource/V2/Order.php +++ b/src/Resource/V2/Order.php @@ -2,9 +2,9 @@ namespace Singularity\HDK\Pay\Resource\V2; -use App\Model\ServiceProvider; -use Carbon\Carbon; use Hyperf\Resource\Json\JsonResource; +use Money\Currency; +use Money\Money; use Singularity\HDK\Pay\Enum\OrderStatus; use stdClass; @@ -48,6 +48,9 @@ class Order extends JsonResource */ public function toArray(): array { + if (empty($this->resource['order_no'])) { + return $this->parseClassicOrder(); + } return [ 'order_no' => $this->order_no, 'state' => $this->state, @@ -65,6 +68,25 @@ class Order extends JsonResource ]; } + private function parseClassicOrder(): array + { + return [ + 'order_no' => $this->orderNo, + 'state' => $this->state, + 'transaction_id' => $this->transactionId, + 'uid' => $this->uid, + 'method' => $this->payment, + 'description' => $this->goodsName, + 'total_amount' => new Money($this->amount['amount'], new Currency($this->amount['currency'])), + 'currency' => $this->amount['currency'], + 'items' => [], + 'external' => [], + 'remark' => $this->remark, + 'notification' => $this->notification ?? [], + 'more_details' => [], + ]; + } + public function __get($key) { return $this->resource->{$key} ?? $this->resource[$key];