feat: 微信V3 + 支付宝手机站/UA自适应 + 业务对接(签名下单/webhook) + 通用多业务
- 微信支付 V3 Native 渠道 (wechat.go):Native下单/回调AES-GCM解密验签/查单 - 支付宝:手机网站支付 wap.pay + 按 UA 自适应(PC page.pay扫码 / 手机拉App);qr_pay_mode=2 完整扫码收银台 - 业务对接:下单接口扩展(biz_system/biz_ref/return_url)+ HMAC 签名鉴权;支付成功 webhook 主动推送业务方 + 60s 重试 + BizNotifyLog - 通用多业务:config.biz 改 map,加业务只改配置(BIZ_<SYS>_SECRET/_CALLBACK_URL) - seedPlans:四档真实套餐 + promo_first_month(¥1) + test_liandiao(0.01),均挂 biz_code;/products 暴露 biz_code - 删除沙箱 pay.html;对接设计文档入 docs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019UQmqWmV67sXGLrb3U1XXn
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package model
|
||||
|
||||
// BizNotifyLog 业务系统回调(pay → 业务方 webhook)日志,供排障 / 重放追踪。
|
||||
type BizNotifyLog struct {
|
||||
Base
|
||||
OutTradeNo string `gorm:"index;size:64" json:"out_trade_no"`
|
||||
BizSystem string `gorm:"size:32" json:"biz_system"`
|
||||
URL string `gorm:"size:255" json:"url"`
|
||||
Payload string `gorm:"type:text" json:"payload"`
|
||||
RespCode int `json:"resp_code"`
|
||||
RespBody string `gorm:"type:text" json:"resp_body"`
|
||||
OK bool `json:"ok"`
|
||||
}
|
||||
@@ -25,4 +25,9 @@ type Order struct {
|
||||
BuyerLogonID string `gorm:"size:128" json:"buyer_logon_id"`
|
||||
PaidAt *time.Time `json:"paid_at"`
|
||||
ClientIP string `gorm:"size:64" json:"client_ip"`
|
||||
|
||||
// —— 业务对接(如 jiu 授权续费)——
|
||||
BizSystem string `gorm:"index;size:32" json:"biz_system,omitempty"` // 业务来源,如 jiu;决定入账后回调哪个 webhook。空=独立收款(/paytest 等)
|
||||
BizRef string `gorm:"size:128" json:"biz_ref,omitempty"` // 业务引用(jiu 的 purchase_id),webhook 原样回传
|
||||
BizNotified bool `gorm:"default:false" json:"biz_notified"` // 业务 webhook 是否已成功回调(幂等/重试用)
|
||||
}
|
||||
|
||||
@@ -10,4 +10,7 @@ type Product struct {
|
||||
Price string `gorm:"size:20;not null" json:"price"` // 元,两位小数
|
||||
Active bool `gorm:"default:true" json:"active"`
|
||||
Sort int `json:"sort"`
|
||||
// BizCode 稳定套餐码(如 annual_standard),业务 webhook 回传,供业务方按码映射权益(时长/档位),
|
||||
// 避免业务方硬编码数字 product_id。空=无业务语义(纯测试套餐)。
|
||||
BizCode string `gorm:"size:64;index" json:"biz_code,omitempty"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user