From c605e222a730066d9d0a59d57135f3575860e0c0 Mon Sep 17 00:00:00 2001 From: RockYang Date: Mon, 22 Jan 2024 16:10:08 +0800 Subject: [PATCH] fix: fix bug for wechat transfer message parse failed --- api/service/wx/tranaction.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/service/wx/tranaction.go b/api/service/wx/tranaction.go index e2ff4984..7f8c7e4c 100644 --- a/api/service/wx/tranaction.go +++ b/api/service/wx/tranaction.go @@ -39,9 +39,11 @@ func parseTransactionMessage(xmlData string) *Message { } break } - if se.Name.Local == "weapp_path" && !strings.Contains(message.Url, "customerDetails.html") { + if se.Name.Local == "weapp_path" || se.Name.Local == "url" { if err := decoder.DecodeElement(&value, &se); err == nil { - message.Url = strings.TrimSpace(value) + if strings.Contains(value, "trans_id=") { + message.Url = value + } } break } @@ -94,6 +96,9 @@ func extractTransaction(message *Message) Transaction { parse, err := url.Parse(message.Url) if err == nil { tx.TransId = parse.Query().Get("id") + if tx.TransId == "" { + tx.TransId = parse.Query().Get("trans_id") + } } return tx