From 88915276d160e8aadb912f1a85246e5efd31856a Mon Sep 17 00:00:00 2001
From: Alex-larget <33240357+Alex-larget@users.noreply.github.com>
Date: Tue, 17 Mar 2026 15:17:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
miniprogram/app.js | 4 +-
miniprogram/pages/gift-pay/detail.js | 67 ++-
miniprogram/pages/gift-pay/detail.wxml | 117 ++++--
miniprogram/pages/gift-pay/detail.wxss | 515 +++++++++++++++++-------
miniprogram/project.private.config.json | 18 +-
miniprogram/yulan.html | 210 ++++++++++
soul-api/internal/handler/gift_pay.go | 48 ++-
soul-api/wechat/info.log | 34 ++
8 files changed, 778 insertions(+), 235 deletions(-)
create mode 100644 miniprogram/yulan.html
diff --git a/miniprogram/app.js b/miniprogram/app.js
index 74bc8bfb..12b88878 100644
--- a/miniprogram/app.js
+++ b/miniprogram/app.js
@@ -9,8 +9,8 @@ const { checkAndExecute } = require('./utils/ruleEngine.js')
App({
globalData: {
// API 基础地址(切换环境时注释/取消注释)
- baseUrl: 'https://soulapi.quwanzhi.com',
- // baseUrl: 'http://localhost:8080', // 本地调试
+ // baseUrl: 'https://soulapi.quwanzhi.com',
+ baseUrl: 'http://localhost:8080', // 本地调试
// baseUrl: 'https://souldev.quwanzhi.com', // 测试环境
diff --git a/miniprogram/pages/gift-pay/detail.js b/miniprogram/pages/gift-pay/detail.js
index 427c5b09..8932b101 100644
--- a/miniprogram/pages/gift-pay/detail.js
+++ b/miniprogram/pages/gift-pay/detail.js
@@ -11,7 +11,9 @@ Page({
detail: null,
loading: true,
paying: false,
- isInitiator: false // 是否发起人,发起人看到「分享给好友」UI,好友看到「帮他付款」
+ isInitiator: false,
+ requesterMsg: '',
+ amountDisplay: '0.00' // 预格式化金额,WXML 中 toFixed 可能不生效
},
onLoad(options) {
@@ -35,7 +37,13 @@ Page({
if (res && res.success) {
const myId = app.globalData.userInfo?.id || ''
const isInitiator = !!myId && res.initiatorUserId === myId
- this.setData({ detail: res, loading: false, isInitiator })
+ const requesterMsg = isInitiator
+ ? '分享给好友,好友打开后即可为你完成支付。'
+ : (res.initiatorMsg || `" 请帮我代付「${res.sectionTitle || res.description || '该商品'}」,非常感谢! "`)
+ const amountDisplay = (res.amount != null && res.amount !== '')
+ ? Number(res.amount).toFixed(2)
+ : '0.00'
+ this.setData({ detail: res, loading: false, isInitiator, requesterMsg, amountDisplay })
} else {
this.setData({ loading: false })
wx.showToast({ title: res?.error || '加载失败', icon: 'none' })
@@ -47,14 +55,24 @@ Page({
},
async doPay() {
- if (!app.globalData.isLoggedIn || !app.globalData.userInfo) {
- wx.showToast({ title: '请先登录', icon: 'none' })
- setTimeout(() => wx.switchTab({ url: '/pages/my/my' }), 1500)
- return
- }
- const openId = app.globalData.openId || ''
+ // 优先尝试静默获取 openId(有会话时可直接发起支付)
+ let openId = app.globalData.openId || wx.getStorageSync('openId')
if (!openId) {
- wx.showToast({ title: '请先完成微信授权', icon: 'none' })
+ wx.showLoading({ title: '获取支付凭证...', mask: true })
+ openId = await app.getOpenId()
+ wx.hideLoading()
+ }
+ if (!openId) {
+ const { confirm } = await new Promise(r => {
+ wx.showModal({
+ title: '请先登录',
+ content: '登录后可帮他完成代付',
+ confirmText: '去登录',
+ cancelText: '取消',
+ success: res => r(res)
+ })
+ })
+ if (confirm) wx.switchTab({ url: '/pages/my/my' })
return
}
const { requestSn, detail } = this.data
@@ -98,7 +116,22 @@ Page({
if (e.errMsg && e.errMsg.includes('cancel')) {
wx.showToast({ title: '已取消支付', icon: 'none' })
} else {
- wx.showToast({ title: e.message || e.error || '支付失败', icon: 'none' })
+ const errMsg = e.message || e.error || '支付失败'
+ const isPrepayError = /prepay_id|创建订单|支付请求/i.test(errMsg)
+ if (isPrepayError) {
+ const { confirm } = await new Promise(r => {
+ wx.showModal({
+ title: '订单创建失败',
+ content: errMsg + '\n\n是否重新创建订单并重试?',
+ confirmText: '重新创建订单',
+ cancelText: '取消',
+ success: res => r(res)
+ })
+ })
+ if (confirm) this.doPay()
+ } else {
+ wx.showToast({ title: errMsg, icon: 'none' })
+ }
}
}
},
@@ -107,6 +140,20 @@ Page({
app.goBackOrToHome()
},
+ goToInitiatorProfile() {
+ const { detail } = this.data
+ if (!detail?.initiatorUserId) return
+ wx.navigateTo({ url: `/pages/member-detail/member-detail?id=${detail.initiatorUserId}` })
+ },
+
+ goToArticle() {
+ const { detail } = this.data
+ if (!detail || detail.productType !== 'section' || !detail.productId) return
+ const mid = detail.productMid || app.getSectionMid?.(detail.productId)
+ const q = mid ? `mid=${mid}` : `id=${detail.productId}`
+ wx.navigateTo({ url: `/pages/read/read?${q}` })
+ },
+
onShareAppMessage() {
const { requestSn } = this.data
return {
diff --git a/miniprogram/pages/gift-pay/detail.wxml b/miniprogram/pages/gift-pay/detail.wxml
index 08e5b1f5..f6cc715f 100644
--- a/miniprogram/pages/gift-pay/detail.wxml
+++ b/miniprogram/pages/gift-pay/detail.wxml
@@ -1,4 +1,4 @@
-
+
@@ -20,50 +20,55 @@
-
-
- {{detail.sectionTitle || detail.description || '代付商品'}}
- {{detail.contentPreview}}
-
-
-
-
-
-
- 商品
- {{detail.sectionTitle || detail.description || '-'}}
+
+
+
+
+
+
-
- 金额
- ¥{{detail.amount ? detail.amount.toFixed(2) : '0.00'}}
+ 订单详情
+ {{detail.sectionTitle || detail.description || '代付商品'}}
+ {{detail.contentPreview}}
+
+
+
+
+
+
+
+
+ {{requesterMsg}}
+
+
+
+
+
+ 🛡
+ 安全支付保障 · 资金由平台托管
-
-
-
- 💡
- 分享给好友,好友打开后点击「帮他付款」即可为你代付
-
-
-
-
-
-
- ✓
- 付款后,{{detail.initiatorNickname || '好友'}}将获得对应权益
-
-
-
@@ -71,4 +76,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/miniprogram/pages/gift-pay/detail.wxss b/miniprogram/pages/gift-pay/detail.wxss
index 94dee09d..1220e62b 100644
--- a/miniprogram/pages/gift-pay/detail.wxss
+++ b/miniprogram/pages/gift-pay/detail.wxss
@@ -1,7 +1,8 @@
-/* Soul创业派对 - 代付详情页 */
+/* Soul创业派对 - 代付详情页(参考 yulan 深色主题、青绿主色) */
.page {
min-height: 100vh;
- background: linear-gradient(180deg, #0a0a0a 0%, #000 40%, #000 100%);
+ background: #050505;
+ position: relative;
}
.nav-bar {
@@ -10,10 +11,10 @@
left: 0;
right: 0;
z-index: 100;
- background: rgba(0, 0, 0, 0.92);
- backdrop-filter: blur(20rpx);
- -webkit-backdrop-filter: blur(20rpx);
- border-bottom: 1rpx solid rgba(255, 255, 255, 0.06);
+ background: rgba(5, 5, 5, 0.6);
+ backdrop-filter: blur(40rpx);
+ -webkit-backdrop-filter: blur(40rpx);
+ border-bottom: 1rpx solid rgba(255, 255, 255, 0.05);
}
.nav-content {
@@ -32,7 +33,6 @@
display: flex;
align-items: center;
justify-content: center;
- transition: opacity 0.2s;
}
.nav-back:active {
@@ -45,16 +45,18 @@
}
.nav-title {
- font-size: 34rpx;
- font-weight: 600;
- color: #fff;
- letter-spacing: 0.5rpx;
+ font-size: 28rpx;
+ font-weight: 700;
+ color: rgba(255, 255, 255, 0.5);
+ letter-spacing: 0.2em;
+ text-transform: uppercase;
}
.content {
- padding: 20rpx;
+ padding: 24rpx 24rpx 200rpx;
}
+/* 加载 */
.loading-box {
display: flex;
flex-direction: column;
@@ -66,8 +68,8 @@
.loading-spinner {
width: 48rpx;
height: 48rpx;
- border: 4rpx solid rgba(0, 206, 209, 0.2);
- border-top-color: #00CED1;
+ border: 4rpx solid rgba(20, 184, 166, 0.2);
+ border-top-color: #14b8a6;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
@@ -82,28 +84,72 @@
color: rgba(255, 255, 255, 0.45);
}
-/* 营销:章节标题+内容预览,与订单卡片统一风格 */
-.article-preview {
- background: linear-gradient(145deg, #1a1a1c 0%, #141416 100%);
- border-radius: 24rpx;
+/* 产品 Hero 卡片 */
+.hero-card {
+ position: relative;
+ margin-bottom: 32rpx;
+}
+
+.hero-glow {
+ position: absolute;
+ inset: -4rpx;
+ background: linear-gradient(180deg, rgba(20, 184, 166, 0.2) 0%, transparent 100%);
+ border-radius: 40rpx;
+ filter: blur(24rpx);
+ opacity: 0.5;
+}
+
+.hero-inner {
+ position: relative;
+ background: rgba(24, 24, 27, 0.8);
+ border: 1rpx solid rgba(255, 255, 255, 0.1);
+ border-radius: 40rpx;
+ padding: 48rpx;
+ overflow: hidden;
+}
+
+.hero-decor {
+ position: absolute;
+ top: 0;
+ right: 0;
padding: 24rpx;
- margin-bottom: 16rpx;
- border: 1rpx solid rgba(0, 206, 209, 0.1);
+ opacity: 0.1;
}
-.article-title {
+.hero-decor-img {
+ width: 96rpx;
+ height: 96rpx;
+}
+
+.hero-badge {
+ display: inline-block;
+ font-size: 20rpx;
+ font-weight: 900;
+ letter-spacing: 0.2em;
+ color: #14b8a6;
+ background: rgba(20, 184, 166, 0.1);
+ border: 1rpx solid rgba(20, 184, 166, 0.2);
+ padding: 6rpx 24rpx;
+ border-radius: 999rpx;
+ margin-bottom: 24rpx;
+}
+
+.hero-title {
display: block;
- font-size: 30rpx;
- font-weight: 600;
+ font-size: 36rpx;
+ font-weight: 700;
color: #fff;
- line-height: 1.5;
- margin-bottom: 12rpx;
+ line-height: 1.3;
+ letter-spacing: -0.5rpx;
+ margin: 0 0 16rpx;
}
-.article-content {
- font-size: 26rpx;
- color: rgba(255, 255, 255, 0.6);
- line-height: 1.65;
+.hero-desc {
+ display: block;
+ font-size: 28rpx;
+ color: rgba(255, 255, 255, 0.5);
+ line-height: 1.5;
+ margin: 0;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
@@ -111,154 +157,325 @@
-webkit-box-orient: vertical;
}
-/* 订单卡片:与文章预览统一圆角、边距 */
-.card {
- background: linear-gradient(145deg, #1a1a1c 0%, #141416 100%);
- border-radius: 24rpx;
- overflow: hidden;
- margin-bottom: 24rpx;
- border: 1rpx solid rgba(0, 206, 209, 0.1);
-}
-
-.card-header {
- padding: 24rpx;
-}
-
-.card-badge {
- display: inline-block;
- font-size: 22rpx;
- color: rgba(0, 206, 209, 0.9);
- background: rgba(0, 206, 209, 0.08);
- padding: 6rpx 14rpx;
- border-radius: 8rpx;
- margin-bottom: 12rpx;
- letter-spacing: 0.5rpx;
-}
-
-.initiator {
- display: block;
- font-size: 32rpx;
- font-weight: 600;
- color: #fff;
- line-height: 1.4;
- letter-spacing: 0.3rpx;
-}
-
-.card-divider {
- height: 1rpx;
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
- margin: 0 24rpx;
-}
-
-.card-body {
- padding: 20rpx 24rpx 24rpx;
-}
-
-.row {
+.hero-footer {
+ margin-top: 40rpx;
+ padding-top: 32rpx;
+ border-top: 1rpx solid rgba(255, 255, 255, 0.05);
display: flex;
+ align-items: center;
justify-content: space-between;
- align-items: flex-start;
+}
+
+.hero-amount-wrap {
+ display: flex;
+ flex-direction: column;
+ gap: 8rpx;
+}
+
+.hero-amount-label {
+ font-size: 20rpx;
+ font-weight: 700;
+ letter-spacing: 0.2em;
+ color: rgba(255, 255, 255, 0.4);
+ text-transform: uppercase;
+}
+
+.hero-amount-row {
+ display: flex;
+ align-items: baseline;
+ gap: 4rpx;
+}
+
+.hero-currency {
+ font-size: 36rpx;
+ font-weight: 700;
+ color: #14b8a6;
+}
+
+.hero-amount {
+ font-size: 60rpx;
+ font-weight: 700;
+ font-family: 'JetBrains Mono', 'SF Mono', monospace;
+ color: #fff;
+ letter-spacing: -1rpx;
+}
+
+.hero-arrow-wrap {
+ width: 96rpx;
+ height: 96rpx;
+ border-radius: 32rpx;
+ background: rgba(20, 184, 166, 0.1);
+ border: 1rpx solid rgba(20, 184, 166, 0.2);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.hero-arrow {
+ width: 40rpx;
+ height: 40rpx;
+ filter: invert(72%) sepia(45%) saturate(800%) hue-rotate(130deg);
+}
+
+/* 发起人信息卡片 */
+.requester-card {
+ background: rgba(24, 24, 27, 0.3);
+ border: 1rpx solid rgba(255, 255, 255, 0.05);
+ border-radius: 48rpx;
+ padding: 24rpx;
margin-bottom: 16rpx;
}
-.row:last-child {
- margin-bottom: 0;
-}
-
-.label {
- font-size: 26rpx;
- color: rgba(255, 255, 255, 0.45);
- flex-shrink: 0;
- width: 80rpx;
-}
-
-.product-row .value {
- flex: 1;
- text-align: right;
- font-size: 28rpx;
- color: rgba(255, 255, 255, 0.95);
- line-height: 1.5;
- word-break: break-all;
-}
-
-.product-desc {
- overflow: hidden;
- text-overflow: ellipsis;
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
-}
-
-.amount-row {
- align-items: center;
-}
-
-.amount-row .amount {
- font-size: 44rpx;
- font-weight: 700;
- color: #00CED1;
- letter-spacing: 1rpx;
- text-shadow: 0 0 24rpx rgba(0, 206, 209, 0.3);
-}
-
-/* 提示文案 */
-.tips {
+.requester-header {
display: flex;
- align-items: flex-start;
- gap: 10rpx;
- padding: 0 4rpx 24rpx;
- font-size: 26rpx;
- color: rgba(255, 255, 255, 0.5);
- line-height: 1.5;
+ align-items: center;
+ gap: 32rpx;
+ margin-bottom: 24rpx;
}
-.tips-icon {
- flex-shrink: 0;
- font-size: 28rpx;
- opacity: 0.8;
+.requester-header:active {
+ opacity: 0.85;
}
-/* 主按钮 */
-.pay-btn {
- width: 100%;
+.requester-avatar {
+ width: 96rpx;
height: 96rpx;
- line-height: 96rpx;
- background: linear-gradient(135deg, #00CED1 0%, #18a8a8 50%, #20B2AA 100%);
- color: #fff;
- font-size: 34rpx;
- font-weight: 600;
- border-radius: 50rpx;
- border: none;
- box-shadow: 0 8rpx 24rpx rgba(0, 206, 209, 0.35);
- transition: opacity 0.2s, transform 0.1s;
+ border-radius: 50%;
+ background: linear-gradient(180deg, #3f3f46 0%, #18181b 100%);
+ border: 1rpx solid rgba(255, 255, 255, 0.1);
+ overflow: hidden;
+ flex-shrink: 0;
}
-.pay-btn:active {
- opacity: 0.92;
- transform: scale(0.99);
+.avatar-img {
+ width: 100%;
+ height: 100%;
}
-.pay-btn[disabled] {
- opacity: 0.6;
- transform: none;
+.icon-avatar {
+ padding: 24rpx;
+ filter: brightness(0) invert(0.6);
}
-.share-btn {
+.requester-info {
+ flex: 1;
+ min-width: 0;
+}
+
+.requester-name {
+ display: block;
+ font-size: 28rpx;
+ font-weight: 700;
+ color: rgba(255, 255, 255, 0.9);
+ margin-bottom: 4rpx;
+}
+
+.requester-label {
+ font-size: 20rpx;
+ font-weight: 700;
+ letter-spacing: 0.2em;
+ color: rgba(255, 255, 255, 0.4);
+ text-transform: uppercase;
+}
+
+.requester-msg-wrap {
+ position: relative;
+ padding-left: 20rpx;
+}
+
+.requester-msg-bar {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 4rpx;
+ background: rgba(20, 184, 166, 0.3);
+ border-radius: 2rpx;
+}
+
+.requester-msg {
+ font-size: 28rpx;
+ color: rgba(255, 255, 255, 0.5);
+ font-style: italic;
+ line-height: 1.6;
+}
+
+/* 安全徽章 */
+.security-badge {
display: flex;
align-items: center;
justify-content: center;
gap: 16rpx;
+ padding: 32rpx 0;
}
-.btn-icon-img {
- width: 40rpx;
- height: 40rpx;
- filter: brightness(0) invert(1);
+.security-icon {
+ font-size: 32rpx;
+ opacity: 0.6;
}
+.security-text {
+ font-size: 20rpx;
+ font-weight: 700;
+ letter-spacing: 0.2em;
+ color: rgba(255, 255, 255, 0.35);
+ text-transform: uppercase;
+}
+
+/* 空状态 */
.empty {
text-align: center;
padding: 120rpx 0;
font-size: 28rpx;
color: rgba(255, 255, 255, 0.45);
}
+
+/* 底部浮动操作栏 */
+.footer-bar {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 20;
+ padding: 32rpx;
+}
+
+.footer-bg {
+ position: absolute;
+ inset: 0;
+ background: rgba(24, 24, 27, 0.9);
+ backdrop-filter: blur(40rpx);
+ -webkit-backdrop-filter: blur(40rpx);
+ border-top: 1rpx solid rgba(255, 255, 255, 0.1);
+ border-radius: 50rpx;
+ box-shadow: 0 -20rpx 100rpx rgba(0, 0, 0, 0.5);
+}
+
+.footer-inner {
+ position: relative;
+ display: flex;
+ align-items: center;
+ gap: 32rpx;
+ padding: 24rpx 24rpx 24rpx 48rpx;
+}
+
+.footer-summary {
+ flex: 1;
+}
+
+.footer-label {
+ display: block;
+ font-size: 20rpx;
+ font-weight: 700;
+ letter-spacing: 0.2em;
+ color: rgba(255, 255, 255, 0.4);
+ text-transform: uppercase;
+ margin-bottom: 4rpx;
+}
+
+.footer-amount {
+ font-size: 40rpx;
+ font-weight: 700;
+ font-family: 'JetBrains Mono', 'SF Mono', monospace;
+ color: #fff;
+ letter-spacing: -1rpx;
+}
+
+.footer-currency {
+ font-size: 28rpx;
+ color: #14b8a6;
+ margin-right: 4rpx;
+}
+
+.footer-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 16rpx;
+ padding: 32rpx 48rpx;
+ border-radius: 36rpx;
+ font-size: 28rpx;
+ font-weight: 900;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+ border: none;
+ box-shadow: 0 16rpx 40rpx rgba(20, 184, 166, 0.3);
+}
+
+.footer-btn::after {
+ border: none;
+}
+
+.share-btn {
+ background: #14b8a6;
+ color: #000;
+}
+
+.pay-btn {
+ background: #14b8a6;
+ color: #000;
+}
+
+.pay-btn[disabled] {
+ opacity: 0.6;
+}
+
+.footer-btn:active {
+ transform: scale(0.98);
+}
+
+.btn-icon {
+ width: 40rpx;
+ height: 40rpx;
+}
+
+.share-btn .btn-icon,
+.pay-btn .btn-icon {
+ filter: brightness(0);
+}
+
+/* 背景光效 */
+.bg-effects {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ pointer-events: none;
+ z-index: -1;
+}
+
+.bg-glow {
+ position: absolute;
+ border-radius: 50%;
+ filter: blur(150rpx);
+}
+
+.bg-glow-1 {
+ top: -20%;
+ left: -10%;
+ width: 80%;
+ height: 60%;
+ background: rgba(20, 184, 166, 0.05);
+ animation: pulse-slow 8s infinite;
+}
+
+.bg-glow-2 {
+ bottom: -10%;
+ right: -10%;
+ width: 60%;
+ height: 50%;
+ background: rgba(20, 184, 166, 0.05);
+}
+
+@keyframes pulse-slow {
+ 0%, 100% { opacity: 0.3; }
+ 50% { opacity: 0.6; }
+}
+
+.bg-dots {
+ position: absolute;
+ inset: 0;
+ background-image: radial-gradient(rgba(255,255,255,0.02) 1rpx, transparent 1rpx);
+ background-size: 64rpx 64rpx;
+}
diff --git a/miniprogram/project.private.config.json b/miniprogram/project.private.config.json
index b79d1327..0f35dfe1 100644
--- a/miniprogram/project.private.config.json
+++ b/miniprogram/project.private.config.json
@@ -24,19 +24,12 @@
"miniprogram": {
"list": [
{
- "name": "pages/gift-pay/detail",
+ "name": "代付",
"pathName": "pages/gift-pay/detail",
- "query": "requestSn=GPRMP20260317114238341300",
+ "query": "requestSn=GPRMP20260317145140501100",
"scene": null,
"launchMode": "default"
},
- {
- "name": "pages/read/read",
- "pathName": "pages/read/read",
- "query": "mid=219",
- "launchMode": "default",
- "scene": null
- },
{
"name": "唤醒",
"pathName": "pages/read/read",
@@ -57,13 +50,6 @@
"query": "mid=20",
"launchMode": "default",
"scene": null
- },
- {
- "name": "pages/read/read",
- "pathName": "pages/read/read",
- "query": "mid=1",
- "launchMode": "default",
- "scene": null
}
]
}
diff --git a/miniprogram/yulan.html b/miniprogram/yulan.html
new file mode 100644
index 00000000..d7d55966
--- /dev/null
+++ b/miniprogram/yulan.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+ 代付页面预览 - Premium FriendPay
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/soul-api/internal/handler/gift_pay.go b/soul-api/internal/handler/gift_pay.go
index 6aca8eec..939e44ae 100644
--- a/soul-api/internal/handler/gift_pay.go
+++ b/soul-api/internal/handler/gift_pay.go
@@ -199,15 +199,17 @@ func GiftPayDetail(c *gin.Context) {
return
}
- // 发起人昵称(脱敏)
+ // 发起人昵称与头像(完整展示)
var initiator model.User
nickname := "好友"
- if err := db.Where("id = ?", gpr.InitiatorUserID).Select("nickname").First(&initiator).Error; err == nil && initiator.Nickname != nil {
- n := *initiator.Nickname
- if len(n) > 2 {
- n = string([]rune(n)[0]) + "**"
+ initiatorAvatar := ""
+ if err := db.Where("id = ?", gpr.InitiatorUserID).Select("nickname", "avatar").First(&initiator).Error; err == nil {
+ if initiator.Nickname != nil && *initiator.Nickname != "" {
+ nickname = *initiator.Nickname
+ }
+ if initiator.Avatar != nil && *initiator.Avatar != "" {
+ initiatorAvatar = *initiator.Avatar
}
- nickname = n
}
// 营销:章节类型时返回标题和内容预览,吸引代付人
@@ -224,17 +226,18 @@ func GiftPayDetail(c *gin.Context) {
}
c.JSON(http.StatusOK, gin.H{
- "success": true,
- "requestSn": gpr.RequestSN,
- "productType": gpr.ProductType,
- "productId": gpr.ProductID,
- "amount": gpr.Amount,
- "description": gpr.Description,
- "sectionTitle": sectionTitle,
- "contentPreview": contentPreview,
- "initiatorNickname": nickname,
- "initiatorUserId": gpr.InitiatorUserID,
- "expireAt": gpr.ExpireAt.Format(time.RFC3339),
+ "success": true,
+ "requestSn": gpr.RequestSN,
+ "productType": gpr.ProductType,
+ "productId": gpr.ProductID,
+ "amount": gpr.Amount,
+ "description": gpr.Description,
+ "sectionTitle": sectionTitle,
+ "contentPreview": contentPreview,
+ "initiatorNickname": nickname,
+ "initiatorAvatar": initiatorAvatar,
+ "initiatorUserId": gpr.InitiatorUserID,
+ "expireAt": gpr.ExpireAt.Format(time.RFC3339),
})
}
@@ -307,12 +310,23 @@ func GiftPayPay(c *gin.Context) {
}
// 唤起微信支付,attach 中 userId=发起人,giftPayRequestSn=请求号
+ // 注意:必须使用代付人(payer)的 openId,微信会在代付人手机上唤起支付
attach := fmt.Sprintf(`{"productType":"%s","productId":"%s","userId":"%s","giftPayRequestSn":"%s"}`,
gpr.ProductType, gpr.ProductID, gpr.InitiatorUserID, gpr.RequestSN)
totalFee := int(gpr.Amount * 100)
+ if totalFee < 1 {
+ c.JSON(http.StatusOK, gin.H{"success": false, "error": "金额异常,无法发起支付"})
+ return
+ }
ctx := c.Request.Context()
prepayID, err := wechat.PayJSAPIOrder(ctx, req.OpenID, orderSn, totalFee, "代付-"+gpr.Description, attach)
if err != nil {
+ openIDMask := req.OpenID
+ if len(openIDMask) > 8 {
+ openIDMask = openIDMask[:4] + "***" + openIDMask[len(openIDMask)-4:]
+ }
+ fmt.Printf("[GiftPayPay] 微信统一下单失败: orderSn=%s openId=%s payerId=%s initiatorId=%s err=%v\n",
+ orderSn, openIDMask, payer.ID, gpr.InitiatorUserID, err)
c.JSON(http.StatusOK, gin.H{"success": false, "error": fmt.Sprintf("支付请求失败: %v", err)})
return
}
diff --git a/soul-api/wechat/info.log b/soul-api/wechat/info.log
index 79b523db..500a7d61 100644
--- a/soul-api/wechat/info.log
+++ b/soul-api/wechat/info.log
@@ -37377,3 +37377,37 @@
{"level":"debug","timestamp":"2026-03-16T20:40:41+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 250\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Mon, 16 Mar 2026 12:40:41 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08C9F4DFCD06108C0618F9CD8C5820ACB71928858705-0\r\nServer: nginx\r\nWechatpay-Nonce: 0ea065e9db8e2ec176b8835f2d04d077\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: x2PLZYOk/TyQvPTkrvIVQ7kfCTkveZNJWwzmjTaNnDMOf/pN3hmE4DgCB0v8D+gi1kONfgXKs+CkSYwwDHcmp6g8L7svBwuh73r+KifbxHqtGUeGxlojFXp2f5V1k1O1Vw4oTx7H3ScD7xGU5LfD0oCxDuvxrWHokJTLTvn0202Xmo8kQK5Su743yWFzlHRhPth7wGbXFhUJN/Hf+XYZj1AfoQLbV9RQ19bwDQSLcU/D5FR20t2eoeN+zuke86ilRB9Iu2Fkg+Y6kaB1vUkWBOPdpM3RNSib9hGAPw8cQLgPtiB+9X8P2nudZRI1Z0xA97aIDPTOe4g/hd62A9EW0w==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773664841\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":1000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260316201604369600\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
{"level":"debug","timestamp":"2026-03-16T20:45:41+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260316201604369600?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"MqKTL5iJVhTUOxerBJaZQKfjCwUBJvyP\",timestamp=\"1773665141\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"iC1c5SII/LZ+mtQwmealvkfpsl+OoJmuGMSBfaPXDKEyuQIfS5tRlkcgKwhbmhCrIkhg5yn/CWEMJS/SaoPoeFFjyAjHqZnP62c/6aintpAidSWotl6gBHaDMrZtGS6pjCWBS4a4WK4z9DmWUWQmD+2Y8UlW8vRWlb7Mw5h8gF89jODXmUZVULU+B3N5Obyh7QZxTe7kF4F2f4idLU0IG60Af22GXVQgBwcgDxAzS6LjA8J+b+nukGnocCShPW3E6wHuiVCEBTgdPsL9UzEsZZ18QDOnhaRrKr0M61fhu3zHl0us7hAm7gmvVx8u0jbLLY4HBeize/lYDHyuPy/PBQ==\"Accept:*/*} request body:"}
{"level":"debug","timestamp":"2026-03-16T20:45:41+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 250\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Mon, 16 Mar 2026 12:45:41 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08F5F6DFCD0610F00518EDCEC6AF0120D0CC0328F98203-0\r\nServer: nginx\r\nWechatpay-Nonce: d8eb54411d008bf5e8475a2cea097e5f\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: CMN50U/sTH8XZteWf/HWHcl3lLEofefrIMwF0K3PAIJi/to1UZnTAqNIH4IfTKFaaV1JPvQnXLAD3lTycMeZQbGZK6H90iIIRDhFDgFrZyjoOutXY6K64Tljgk70YU71fMq9uWPHsGQDr9gmkYA/GDbY0cvGXBmlHdAQJZ7xT5WsPABMwsTcgEV7mb4lT8M8y9HfxXdAQBH5P7Td8G3k5NgFSqWqv8fcHmDfbhMn4bb94C1uLKElOJ0OIBIRoex62hJoQv+hB9vubRwAdIQInwvczM0uHMfZkdJYDI/ktqZIEN4ICuoSQxfBa/+B8XaKTyANK4jbG8JiPG+wPS8E3g==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773665141\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":1000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260316201604369600\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:47:56+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317141918095736?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"eSkcUKvtVNVg1JS2wzI0pyZ3EOdOnD98\",timestamp=\"1773730075\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"SKHSogX4C6H/+cli0eqWmLtQGt22tIBLomOq7V4xFj3YA4GN3FM3m3kf2dhC9Oqb/Lj4xalMd9TgBA3dfzYKUp7bzmTz2XouE3Ec1wwzJsjXbLoUI0RHbVYxXujFES8z/lAl5o9FEAjwd2YOIkKyzYRL5YibXTktiCjbyslzqo78OjF2OBWj24nHZRErsDDTlzFdJq54xI8sviL61IZMIMdLz3gOjDqlK+4hUxwc97/KEmr7XAFGzIXbXJfwGKlSMZ4SNWNAyzOLWdyZolSnBmECmaUenwyEfQuxmlUm303cb3Tl9GyDU+9tUFL3ZNWg9xHazuEFd1dT7XC2340gcA==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:47:56+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:47:57 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 089DF2E3CD061096011894CDC05520F0930328FB8B02-0\r\nServer: nginx\r\nWechatpay-Nonce: c9d402241bed76375c22b89115573dd4\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: aV8ovudVySABjxMc+6AC0qWdVuEMT8DdHD0o14kTX9AY41ZS3Xn2WxrYRQnjQQTcffqWu8PfU9X2PKyTdDdDCAx0Ux5khConG3WqMAoqblrme0accGMXP8i69Xz9bX3gb2MpNgT5gF7v8d12EinRhMPjigGYTb6y810GzBFcRiuLqlL6OTpf7JoPJksWaffC+yigK/32LmnnYW5qbPdTbuEDRdSfzflNa5LLFonDGGvrTdeRxu6cypDip9zb/5MynDZQSxOaHa4LpadXKUx7rKLfJ79KGwvDVudUtodXBCrUXDnG/934YcxmwQZqphQ/ThldqShE1/lke5WVyNqEow==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730077\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317141918095736\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:47:57+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317141927563975?mchid=1318592501 request header: { Authorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"XEbZZrYGyhwW6U0lGwbSScpgHCFF7hoU\",timestamp=\"1773730076\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"D110yx9T2AWNYl1mxb4CyEXmBRsMzhO43/IgQ0M2PPtW3i96+43aT1wWLL83KikmxTMS0baij4O20uCwVWrcq+uT/AJCfW/pMFMnuqjgI/oUSAQfigY8Le/a8f/JXTqnuLqRx4SfzUJjTVNf4mFmsKRrI4jJIRJjZ8uSmory8wMFTUAushy3ytiEpKiELx8aRBXWa5ZBQRPW6FSC5gwxiRj3WR94LinOX9ixKx13fu+UnriwkNcdZ3ryC7l+Q178dT9S6mNbSeloMmO5AUbRjA1NyJdqdurHAtjbVxXPlGupqni2Cad227gxe9QkOSdqYXQq+OHB8biZxAKlQATFoQ==\"Accept:*/*Content-Type:application/json} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:47:57+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:47:57 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 089DF2E3CD0610A70418C6CEC05520BCDB0528DDB701-0\r\nServer: nginx\r\nWechatpay-Nonce: b9cf062a32b1663bb63eb6b2c7daac82\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: hc7a8Bsd34E/jC4p4Qy0clJpwqcGNqXT+S37Ft1K38Rul9k1QNdoP0LFmFXvsuLjycQlqKSGc3sgzNds978LXxttBcachfS79fKlD7+y6/lVJjmd7dr5H2bT0lPfueSXS9KvDbOs9GG+ChGCCHIuE+iLIBvEocmDHVTraptmeTtLXgCLoRXWT0LZrTLo7vjwbmInAsxAThnsXcEsJD+2Vp+AcYLcNIjyl8NygINAmGmIkT7SyeTOt40i2URN+YPZN+LNLMhtKwP8WZVjzWC6RkqH/q+nzlJBJWtaH5hlXj7l7NI0hgNcPqRESO6OrdGxJWVI4W9k+l1eU1B7qo5Jeg==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730077\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317141927563975\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:47:57+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317142043057925?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"s6Ul3OOWAj0jWqr7msNUa4rELYAOLePq\",timestamp=\"1773730077\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"1Hsm6QE9wvhmMBI1dWo9EfthV9LWMuKiqfuUXnD8qi+fbZYohEXkGVyAEPrphXICqNnc23ZbmbqOn+U3I2HdNT/WajOrPJzkvOoJHmc0fVBfLe1SMrgCeQunfazenhe3aVh1OVu9ssaT/rOOEc06Z9bYE/qQ7zPH2gfxjHdO8Lv4T/Oy/7vaV+jZh9Bb07l4CccsrVQ3tcfBLchcEG7GaJe53cCpq5kOVBl1LrL4/rD9fxKFfF0WCeb8qLcgtFMPWa4zM3AyNPzTpSnbNZOXjYEquhi3lFmt/zKPh8K0D5zLSL37mnJX146se2fmV4n35hXKX6ZmdzPsBeWf80+HCQ==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:47:57+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:47:58 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 089DF2E3CD061091071895CCC05520C2930628DEF903-0\r\nServer: nginx\r\nWechatpay-Nonce: 43baf852c87317c448ee51b35352ed33\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: xqTPPBvHLmMFYOnMKF4yik19yjrM12CCjf8QiQAXHyzk7p5coCqufw8j/aAcmF/qkk56sHsCLIYNcLh4udMXbVPDgoqZACIsP8sSmdqwQvD0+0+ziSE9BWPQ734wedfBWwbF+6SWXohMey3VyT+HxlNwtbm7Hsvnu1tOuh0MurgC6Tb6uM94KXW7ykZ4x/CbGsMrvOxW2R2e2tEhkjaKvDSXhHGa4EqFNnqigXh6NR/c0ysosTMeTWVRZfzv6sdQ2+aB2Nx0ACkVL6TY5yoYCKkFb3R4pHcc8yz8tyBhUKz5Ol38SGh5Y0r6ZUzOpdM7M6PWT+JKsqNwDOQfuYjFqQ==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730077\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317142043057925\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:47:58+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317143039745576?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"wkSnuFuDK9dUaIkhKJ6DNgLRGURc8vHg\",timestamp=\"1773730077\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"KNaTHJ7IcDqt/9IhGX/R/Lq3cJ5mhcV/KBWRfK6JPedmwQFlqwBjLEnCwu53RHdy7PjDcRjKsY/KEJiQEVBEleldb5SjrjWYqPbkK0VwzvTxZbJ3Za2BU2bnM70uxYE9efoIqqhoO1Rzcve3g4bC6Keex3W3nPqx+W0Z9Gt8FAQTWB5e+kcgLtFS30xmag817RyXGemPvggJeIERKpClDJAT5jQuQNGNVe38ZB0UB8rUmjPWs1mxWXl3lqr2lpcnSGMbbWDIjvPMZSPB8d0s7adbAKQwT/xtWxBE0yZnf4d+7zoKw+aBpGQoW1Saz/M5nIfzI7RQZpqgfnmJ0ENZiA==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:47:58+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:47:58 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 089EF2E3CD0610B10218C6CAC05520B4CA0728F0B903-0\r\nServer: nginx\r\nWechatpay-Nonce: c81269920a16953d79d4f77b640fbe08\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: TR27ZPH6XPYABcmZcIe9KydewOtIhLA9Vty2Ez1aZnDule3+vFrXOd3bUFjspm7VNoqMTmLddWlUm7bVFornsqQwnZBgQJdnH9NoOe484eRUxr1hpTYLLM2ZjOOTCia5KtgYM+HuAOQ7oO1tWnCb7E+gkGyCOpW5/9793vUaqI1YVp8nqlpZQc5jav1BBVXpXn37hBZ6PNIEYhrUIpXtLdJGun24BJMhhPBDtnWiEYGV6wLpwAYp7RcSYMG8Vs+tIvalpctWU01UpKULynuHzJrUfJ2AMF5VhkmF6HkzwCUOY0KmAFoNqiwjnAUABjO1GyQtzj0Ax6oXuyR6KtnhZQ==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730078\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317143039745576\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:52:56+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317143039745576?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"zso5b5jdBUudyF0kq48HfaLz1LlyRPwi\",timestamp=\"1773730373\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"C2TfV9oJkhNwd3D8hVi+yR7wWRC3OzclpmQiVgQta857rPJNTUqYB9QAFiptfU3xTleyHLu/nD0g7eF2a/4YeIfAZ3n5qoTOyzYfykQDQW4Ulnzb9tDLBM6Pd9cBGmdFk7nWY7eREjCH5JRGe8UtPqGSrfWMWH+tEAS5j+OCV3O2CGGP2C1g4ZBz3u4mUeNuwr0O/wr9pHRkuCkgeFTfqF7vbrtwnmrNK3JTVjorWB8crBMw1r8HG7HDVj/2Tyb9KYSARZfCN1N02N7vr2VX1h3COZlRwyOUNLzpMGLaANw4ojb1GzbDNXHK5ZfN2xwDZ9eotkeUbJQWJlGSTBaOpg==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:52:56+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:52:56 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08C8F4E3CD0610EA051891D38C5820B4DB0728E17-0\r\nServer: nginx\r\nWechatpay-Nonce: b146ca0ab1773f6cbd82cc81b3842d13\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: PbpyIOvbUOQomJzSkepcrI8DfKQs1MlUWsxxOMfnHAf8ViUlcOcTiYVZDyYdst+uksV11axCjsA+oRZ/HvUxT3LHbDlKHpdJiQfjU1nOjFpeEHd4JOKxno0vqI9cxGVdSvY6grRZYWpkosx2hOO77MW9YwMCNOIcH0304haqhnwxtyxvXwFe2Qzo6HBz4Rf3aZdSwIFa0fVIp+SaKMBuH3s2/vYduvwK6MlrjU65cNBdI+1A2TDlnvmm4Af5eOyU8lwmoW+o32YrUKUOLZJ/9uZE0koA1tllMKiUdd21lrX+SjCU2qI2QNcm0UPoUGGJU+oKsOA0TVY5ImonnPn4wg==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730376\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317143039745576\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T14:57:53+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317143039745576?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"6sCCEAdmmYyTfBJjW653de2JeFWWW6Uy\",timestamp=\"1773730673\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"faxQPJhV5ASs4YrCzCSg8X6n0N7UIXkJGPAeA3Go8X1U8uBGJSRz5b6er36Lu3klP6tBXj24gtsi5gCfZ2xreKATvFbqiBq+xoTy5E1TGuCltt4ntKCfi+2czGQLiLUlhuN4ezmnP01IBh7UVfS5ZeXJVYjKAG3Dyak3e+OWEd6T5wNhDJylepgtShWd6Qk05soQ8j9lATR5ri2wvOHPaBSMTG5Omyx1adcN5qz2Fr++RyteylM+vXeZacgUAWeN9BnJ4J8MOZZXbxYImt0ontynyo07YeZ09hTtTATrAoSWAdwtLJ4XdH9YY7l0J5C3BHEv8cxD0wllAE9pARpv8Q==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T14:57:53+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 252\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 06:57:53 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08F1F6E3CD06109C0518BBCCC05520B8C50528F5CA05-0\r\nServer: nginx\r\nWechatpay-Nonce: 758bc196e33bfdfd42da028b0ca7c61f\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: RpxrUp3ns0+LdSxMmnh77GDW21wjVBdcUMLK42ZBPcQsGHPJsSs7NU7F2CaZmRzQqFaygYwLdszlSApeMlYZ59EAJUyH1Sxof6f6DJrnFVqIGSDb4yShy7gAQSo34r3HK9bNwpM0ZT8/Z9H5y2K0VXihb8v7KF4mnUlBeYVeYJGP75Bxuk3rDQFj53LPTf0b3yoRyq3Fyvzo7mGACVq6w5iYBe4v60eaRqIXO8upwhFCcL2nubg1qSEobm7/BDZvi6GogxUbp+Nf0yI2fyvPfNOB8l+F//WKOi1mZVk3eEr7xLifzBGhvIwwHk6NJ5jan73aPt2jrRfkaPlp3rPSew==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773730673\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":198000},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317143039745576\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/accessToken.go:381","content":"GET https://api.weixin.qq.com/cgi-bin/token?appid=wxb8bbb2b10dec74aa&grant_type=client_credential&neededText=&secret=3c1fb1f63e6e052222bbcead9d07fe0c request header: { Accept:*/*} "}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/accessToken.go:383","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 174\r\nConnection: keep-alive\r\nContent-Type: application/json; encoding=utf-8\r\nDate: Tue, 17 Mar 2026 07:09:00 GMT\r\n\r\n{\"access_token\":\"102_MFN_iXDUE6Y_1nmZqAauZyeFh2lqxOJ_waRwOEW9Pe818HGHFCGmqFGeFw9C7tusvB2X5r9J0NjWq6rrfpBkPLD7xcfr6iiBrFuVWoMu_xQlUvctvcsj_El_zxMNCWgACADSM\",\"expires_in\":7200}"}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.weixin.qq.com/sns/jscode2session?access_token=102_MFN_iXDUE6Y_1nmZqAauZyeFh2lqxOJ_waRwOEW9Pe818HGHFCGmqFGeFw9C7tusvB2X5r9J0NjWq6rrfpBkPLD7xcfr6iiBrFuVWoMu_xQlUvctvcsj_El_zxMNCWgACADSM&appid=wxb8bbb2b10dec74aa&grant_type=authorization_code&js_code=0a3WAaGa1ohSnL0zDnGa1DtgtZ0WAaGa&secret=3c1fb1f63e6e052222bbcead9d07fe0c request header: { Accept:*/*} "}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 82\r\nConnection: keep-alive\r\nContent-Type: text/plain\r\nDate: Tue, 17 Mar 2026 07:09:00 GMT\r\n\r\n{\"session_key\":\"pNs23gZmdItJE+RPYTuRrg==\",\"openid\":\"ogpTW5fmXRGNpoUbXB3UEqnVe5Tg\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/baseClient.go:457","content":"POST https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"xajkQxt3S8yOJU67dxlipOnloDepv4Sx\",timestamp=\"1773731340\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"I5H5nb7hE7nTAtPyFtyzCJ/ADxtShSS9obpW2M0nusC0Caxjl0tcxcilCSoeHIGfQrjdl344S2rkPVHUYThGbADrAcSLFeSjgyH3Ci3+X4h0B3Pvo7k9drJVTPZ2zjzBwN+W/uGBnqL5rlKQGBC2TL/FF/OhE+oS2oe4GQWLAWQwXn3R8ao49lOiebJCocXN/24aqWSYq51PatsBipvZOFE7De7s1EnNyHLlXz/saDHBqF38Ri84yhTWb9VB2Cp3R5moLWYrcp25bpey1XROp7US9JRnSLab1ZaQ4mp8QYyEO+5tRFe9gBJsvLqKxqDDgiFWcsL2hEDz0E6C23FIzg==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:09:00+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 400 Bad Request\r\nContent-Length: 204\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:09:01 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 088DFCE3CD0610810218C0BB8C5820E2E63B28A4B404-268435462\r\nServer: nginx\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"code\":\"PARAM_ERROR\",\"detail\":{\"location\":\"body\",\"value\":132},\"message\":\"输入源“/body/attach”映射到值字段“附加数据”字符串规则校验失败,字节数 132,大于最大值 128\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:10:15+08:00","caller":"kernel/baseClient.go:457","content":"POST https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"TEULcMJmgK476DrNyruFKk8seC1ym5XX\",timestamp=\"1773731415\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"0GgN5yhR1z2tlu058ymsRQcfbKWaPLg5OxxJM/i0KQIgw2RVWq9LjQylffRusN01fFju3d0/SeEvU3V3VLLxKzo3Xs3t0KCumC44ukgGqaK/dpsplsNvl+1bNeBRoD9JjDVoD84YF7wzk4zEPIfHkGF2+ni4bowxcpGLtfaAfXKqGB1A+880D5LkFVcrf6t/JJFKZLDzzX8SFEIJYkPTDEPMUBkUhAl7ynOLE3O5a7iNfBaaL1dEhNhU9vvy4WJoRknNStroL7O+LprF9pdc+91Ps7fpioC3hCaHwFJaddrShSQjJrosZB5lfJS1Vf2wMPBps1rsniVtLtBTPmlmIQ==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:10:15+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 400 Bad Request\r\nContent-Length: 204\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:10:15 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08D7FCE3CD0610D605188FBDC05520BCD50328ADB904-268435462\r\nServer: nginx\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"code\":\"PARAM_ERROR\",\"detail\":{\"location\":\"body\",\"value\":132},\"message\":\"输入源“/body/attach”映射到值字段“附加数据”字符串规则校验失败,字节数 132,大于最大值 128\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:10:59+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317150900807700?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"l57GWTECCCf6qQnmmYQl51t4K2tAf51n\",timestamp=\"1773731458\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"dnS0dgTYBSHj8sajn/ctT/yXZcZlEsl4g+d4cbMfzaBQl/41AnTD+o2rJMAFMYEUTIj+R4WFUdj2deb5xDhntL7niUBI9D42rZq3cBXeriMslqyf/mjGbKxCmjWFFCPhAejFOnP43a9RlH6x9TLYJyg3L26YSS5GkS5IYIRD7PDe8iT7V8bJ3XH3Kpu+ru9aqktQATI0orvFuM3/ReaeyCQRwGw63TjCKICLhUJz7WzLOZxxugJtvwuKAgaGAxJXnS8k2adqCZySLUS0Cd6CnW3hlbm438dL3Sss6YHP2MX6VLxdlNOP9eAfzdlHwW1UwAYQ047g6hTQEQOrxcnw7g==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:10:59+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 404 Not Found\r\nContent-Length: 54\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:10:59 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 0883FDE3CD0610AF0418DCE6F8AF0120EEB80228AC46-268512771\r\nServer: nginx\r\nWechatpay-Nonce: a0d44ebf0abdaa6debf5e35b1324fc1a\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: KB3/0fn388IBG+x9e2ZtJWAz1m0N0ItRCsrQWb6DeSBA+FNTJGJewjA8cI7RWBzg2HPVoKPnLoQNLec5kkgs/TIqoBEKx64U/FM50r9st44b0/VaVxuofL1OCslJbeEwva7VQnOaozMGGyY3vqi8w/pyRoFX3vp7DRCMyWaRrBveSf14aRpCryjfx/RdQVsp6kzkKUOapwsbT7P0JpJMr0mEZw0+XGI8VjPontrcljcBFFsCTkHUfOPUlMfCy0oNnuBiY9ng5mBcbDgd0XA58cjYXFfyrR/bqQSJshxRnmTjvL7fLM06uHDqqo20/XhYQwaCYgqbU476Hm8hK0j1Jw==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773731459\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"code\":\"ORDER_NOT_EXIST\",\"message\":\"订单不存在\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:10:59+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317151015445600?mchid=1318592501 request header: { Authorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"P3S83WiVX3HTF6md82aSw0BvLn4Mt2Xi\",timestamp=\"1773731459\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"gMBnZdYqCTJtRbr00WhlYjgV2f2no3vj7xHJYGUP9ZBM/ANP3Z92EX7Kwq3SpcbYGIzu7p22LpS18yPpR7U+oVljLGLtGenD7mnWIYNntOfOcvZ5ysvNWaJ7IbR4ZTFgpJo0/UBKFss6duLKGPwFWJtwDsOsY5c61Y0dQ/8WRYRzeeNcWJwH3/fe9vUlHPszBIY1fe2VLcrgb4Z5S6oZVKgqrTmZhz7HQFFaJGRpJIBKwteTtGoLovK6iQJR1MSxbDKzsBgY3Sc60r2LpZ9BALu3nU072axiEIOedtrRECaJHYFV+xlS6pFHWNruCtddQX7w5MTXve2lvWIFljkfMw==\"Accept:*/*Content-Type:application/json} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:10:59+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 404 Not Found\r\nContent-Length: 54\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:11:00 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 0883FDE3CD061087071895C6C05520988B0328C0A402-268512771\r\nServer: nginx\r\nWechatpay-Nonce: 744d0a9e0a4c9f0fa9f0894215b3e08e\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: k4ZbK1oMXKAS84BEaduldSvMr9JSiWTHb2bN/XfLB63vPnGWW4mReUIewbi5XLk11icwExK9x2Qw3JLEDg+tgdBq4HonqYzdaZ3g0M9PKYGuDkLvW0ykfkVh/ZjYOM/G8XrJHo0rnWACwoujSY/ks8N7rJE1gck16+o47wp8yckm4p9vUL4mrKrCTf23fpP8zzNaVjzwoKk+dMcx9XphROti9JIbFIEo13LPdhFXUIDEo2HuWB7ngERE5uCNfoX/TvcYZnfjlezWMeD+OesanV1cWiWxZxAL7cooLR0fx7zSngz5fcUFnzgkEY+IfDXaVB/5x3Fr/6BpyAQCNXmcsA==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773731460\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"code\":\"ORDER_NOT_EXIST\",\"message\":\"订单不存在\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:11:03+08:00","caller":"kernel/accessToken.go:381","content":"GET https://api.weixin.qq.com/cgi-bin/token?appid=wxb8bbb2b10dec74aa&grant_type=client_credential&neededText=&secret=3c1fb1f63e6e052222bbcead9d07fe0c request header: { Accept:*/*} "}
+{"level":"debug","timestamp":"2026-03-17T15:11:03+08:00","caller":"kernel/accessToken.go:383","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 174\r\nConnection: keep-alive\r\nContent-Type: application/json; encoding=utf-8\r\nDate: Tue, 17 Mar 2026 07:11:04 GMT\r\n\r\n{\"access_token\":\"102_gZr1v9Qc3Rw-x0sMtA_xPbRM2IDQK48YHBhNf5UkPYHmFlXkOUCR2mV1oh-FxMT9Z5aP71sQL7wpmnPzQ6Y10E6smg-vt6KQ8LpjWBxZ2ROBFZIjoT2CKDCKnSQCIAjAAAUAS\",\"expires_in\":7200}"}
+{"level":"debug","timestamp":"2026-03-17T15:11:03+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.weixin.qq.com/sns/jscode2session?access_token=102_gZr1v9Qc3Rw-x0sMtA_xPbRM2IDQK48YHBhNf5UkPYHmFlXkOUCR2mV1oh-FxMT9Z5aP71sQL7wpmnPzQ6Y10E6smg-vt6KQ8LpjWBxZ2ROBFZIjoT2CKDCKnSQCIAjAAAUAS&appid=wxb8bbb2b10dec74aa&grant_type=authorization_code&js_code=0e3NOIGa1OgqoL0FZEJa18TimG3NOIG0&secret=3c1fb1f63e6e052222bbcead9d07fe0c request header: { Accept:*/*} "}
+{"level":"debug","timestamp":"2026-03-17T15:11:03+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 82\r\nConnection: keep-alive\r\nContent-Type: text/plain\r\nDate: Tue, 17 Mar 2026 07:11:04 GMT\r\n\r\n{\"session_key\":\"x7D9cuDzVCxzCHO2/HSeHw==\",\"openid\":\"ogpTW5fmXRGNpoUbXB3UEqnVe5Tg\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:11:04+08:00","caller":"kernel/baseClient.go:457","content":"POST https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"IA6PqVn9UOhVxYmsLRCX1HxzDwl5fBP6\",timestamp=\"1773731464\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"5dLLbE9BkZNjLrv/LKjO0pv8xRXRmu5CFOYFJOAHpi+ux9XSlS0MInHmGPB2VaEIF2OFBbRKlMK+mSJveln+s/1HZ4CyskPDzABGw46BkVQrx5ghMatNYrycjfn+mxP60dWStlgHBFGC1Lqx7U/8GDVxtI3Xdg7s0WwMdmc5ndePZUO3kG7paPW67BvV3YgAYY/4mVMVPZM5hz1Qyul96+SQOPw8N317HVtb08ZrPuvUOcfLu17+6ppZGcwUY5Bm/xpPO8iyr9/L5c5E130f+y1of7nHKJ7u0x5HtJPHAFBS3i8Q7iIU+dLKkGHP06sZkNyThVbavlfmeOchJX6Qpg==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:11:04+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 400 Bad Request\r\nContent-Length: 204\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:11:04 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 0888FDE3CD0610E00618D2CD8C5820B4981E288BCC03-268435462\r\nServer: nginx\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"code\":\"PARAM_ERROR\",\"detail\":{\"location\":\"body\",\"value\":132},\"message\":\"输入源“/body/attach”映射到值字段“附加数据”字符串规则校验失败,字节数 132,大于最大值 128\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:11:49+08:00","caller":"kernel/baseClient.go:457","content":"POST https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"It7MEfTWg65exoJdDuBHwIEL0R6eLB4X\",timestamp=\"1773731509\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"Auo9j6vKgQ5XhggSsyq5cbesVTwrjnEXZsUtWXzizjN2xzV2qgItBWl3vcPP/AhMmaR15K3lHX7J9daQxEgXychq7Y49akN9+0pQRfsj6r1Nej9wVNIjS7W8oOnkFZaV0OUHIt0yxWAUFEs2ZrO/dFAHLIG5YNENcqc3xcp37oBIFPYALRB2EG6M3W5Ujo6I+VpyUB3EQ1ewf3bbBMeWuixYTH3JwwoO0vHrFfEvYxvOzQXGutUGfEnWULUeX76+1HkrGugOm5lspdJVOCX3r55YN1A9A3/QUUQul5t0pz/Ws1LxRx+6W7EbL1ynkNSf3BsGGRvG/guJXBoC2HXBKg==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:11:49+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 52\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:11:49 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 08B5FDE3CD0610B50418D8AAC05520C4ED0628CC8C03-0\r\nServer: nginx\r\nWechatpay-Nonce: 3c7de243555486019ee5407a5befc17e\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: E6BMV0sFgHY9cq/I15VUAgmiZJty5KXHl9aSVPEheYnbUcve6J9VN4bqLkYQt2lq6iilE1AifBmGxBjek/XAdixo2RbJ1yiCr9yM+Yxdi3RrgHXYMYURq9QK8gflbIH5GZS7eg+kYKueYPaAIRq1LHAD3aCfnzcD0fq49GlMGOi7bVQw1v6wW3cNy94cJZ5e32VsFmcXXjybe7CxYnLSo4s5kOsdjSRQJiJOSazplDyKHgeqHpflqFO6SkJvROAWOTFJQVYXgylR6Vr/ZEPDPZntiMGqRYpblFoY8wakewOGg+qZKzBW7DUTkmQUK7B8564oD6+E+mebdC0f8HhW3w==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773731509\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"prepay_id\":\"wx17151149756818d4257dcb4e2b83250001\"}"}
+{"level":"debug","timestamp":"2026-03-17T15:17:26+08:00","caller":"kernel/baseClient.go:457","content":"GET https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/MP20260317151148855100?mchid=1318592501 request header: { Content-Type:application/jsonAuthorization:WECHATPAY2-SHA256-RSA2048 mchid=\"1318592501\",nonce_str=\"iXHM3yIdYUhXvQC03FIKemHVDccXRE6r\",timestamp=\"1773731845\",serial_no=\"4A1DB62CD5C9BE0B6FC51C30621D6F99686E75C5\",signature=\"2KL23qFk/Gs8t0qsYz2Xuy5FemFByzUW5uvS39TBcRn6ziT1ANz1T2U2ZxUuiAXRt99ewXC8Pnsu/XZSf6UCP1vqwFFIcrZ3Wz+1FHjdvhPUL8ZIqD5ymCwRZANoZtaPSd3h7C8f4JT+ET+Inn16v7ezyUDY7TdaFCVvhhCy84/NDyvGIw41i2cF+jA4wySEJ15Lg0Tp7sgOglhYdR8tpngN2qIjUsCl1yToDAU3MvKUp3DhKh5HnMGAdSuENCyFEdL0RYU5mqbggtFnlV0WODsORJ+MKrbfvuA4Q0zVZZnF16OWwP2pfJ32RF6U4eFDb07ICI0hrVgKaHq+AAnOCw==\"Accept:*/*} request body:"}
+{"level":"debug","timestamp":"2026-03-17T15:17:26+08:00","caller":"kernel/baseClient.go:459","content":"------------------response content:HTTP/1.1 200 OK\r\nContent-Length: 249\r\nCache-Control: no-cache, must-revalidate\r\nConnection: keep-alive\r\nContent-Language: zh-CN\r\nContent-Type: application/json; charset=utf-8\r\nDate: Tue, 17 Mar 2026 07:17:26 GMT\r\nKeep-Alive: timeout=8\r\nRequest-Id: 088680E4CD0610FB0218DD9C85AB0120F8DE0528F19905-0\r\nServer: nginx\r\nWechatpay-Nonce: 1179b7f5d9c0211c6769de56735f874f\r\nWechatpay-Serial: 5F2543BF58239A4EB68FA4433DF1438A88B34B16\r\nWechatpay-Signature: VrORKkCkmK8WqBCTWhl0w9Y5rKzRfoDATiKJASSb6qwsctuJqhBdmRZ8IhAyAxM0t7hDCQOvxRxbklVYYlGsYk8Ozsf2VvoH3dBkXlMO8TYMKEkuB/dgQ6VO2fKswvG72dIv6bXfhU+GE8Eu6ENiAfD5eGTjjQAPbFXiJTctcvhggta/vKTPBBnsI47bFWeHzKSVMzkyE+uXpuo97o++TDu/s8C6l+Z+mG/01LE2k4OfvHkXifpARlIyDZr3MQFCGacDniWDr0vqj6Zlaf5PwIZhjEhjcpWbLoSHMSfb6Pt00wunMZLS20m+t/GKYJ3Qz9z3fC+A0Z1j/uS7UJlGVQ==\r\nWechatpay-Signature-Type: WECHATPAY2-SHA256-RSA2048\r\nWechatpay-Timestamp: 1773731846\r\nX-Content-Type-Options: nosniff\r\n\r\n{\"amount\":{\"payer_currency\":\"CNY\",\"total\":100},\"appid\":\"wxb8bbb2b10dec74aa\",\"mchid\":\"1318592501\",\"out_trade_no\":\"MP20260317151148855100\",\"promotion_detail\":[],\"scene_info\":{\"device_id\":\"\"},\"trade_state\":\"NOTPAY\",\"trade_state_desc\":\"订单未支付\"}"}