web
This commit is contained in:
@@ -3,6 +3,7 @@ package handler
|
||||
import (
|
||||
"dianshang/internal/service"
|
||||
"dianshang/pkg/response"
|
||||
"log"
|
||||
"strconv"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -169,37 +170,51 @@ func (h *PaymentHandler) CancelPayment(c *gin.Context) {
|
||||
|
||||
// PaymentNotify 支付回调通知
|
||||
func (h *PaymentHandler) PaymentNotify(c *gin.Context) {
|
||||
log.Printf("[=== 微信支付回调 ===] 收到回调请求")
|
||||
log.Printf("[回调请求] 请求方法: %s", c.Request.Method)
|
||||
log.Printf("[回调请求] 请求路径: %s", c.Request.URL.Path)
|
||||
log.Printf("[回调请求] 客户端IP: %s", c.ClientIP())
|
||||
|
||||
// 读取回调数据
|
||||
body, err := c.GetRawData()
|
||||
if err != nil {
|
||||
log.Printf("[回调错误] 读取回调数据失败: %v", err)
|
||||
response.ErrorWithMessage(c, response.ERROR, "读取回调数据失败")
|
||||
return
|
||||
}
|
||||
log.Printf("[回调数据] 数据长度: %d bytes", len(body))
|
||||
|
||||
// 获取请求头
|
||||
headers := make(map[string]string)
|
||||
for key, values := range c.Request.Header {
|
||||
if len(values) > 0 {
|
||||
headers[key] = values[0]
|
||||
log.Printf("[回调请求头] %s: %s", key, values[0])
|
||||
}
|
||||
}
|
||||
|
||||
// 处理微信支付回调
|
||||
log.Printf("[回调处理] 开始验证签名并解析数据...")
|
||||
notify, err := h.wechatPayService.HandleNotify(c.Request.Context(), body, headers)
|
||||
if err != nil {
|
||||
log.Printf("[回调错误] 处理支付回调失败: %v", err)
|
||||
response.ErrorWithMessage(c, response.ERROR, "处理支付回调失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
log.Printf("[回调数据] 事件类型: %s", notify.EventType)
|
||||
|
||||
// 根据回调类型处理
|
||||
if notify.EventType == "TRANSACTION.SUCCESS" {
|
||||
log.Printf("[支付成功] 开始处理支付成功回调...")
|
||||
// 支付成功,更新订单状态
|
||||
err = h.wechatPayService.ProcessPaymentSuccess(c.Request.Context(), notify)
|
||||
if err != nil {
|
||||
log.Printf("[回调错误] 处理支付成功回调失败: %v", err)
|
||||
response.ErrorWithMessage(c, response.ERROR, "处理支付成功回调失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
log.Printf("[支付成功] 订单状态更新成功")
|
||||
response.Success(c, gin.H{
|
||||
"code": "SUCCESS",
|
||||
"message": "处理成功",
|
||||
@@ -207,6 +222,7 @@ func (h *PaymentHandler) PaymentNotify(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
log.Printf("[回调处理] 非支付成功事件,仅记录")
|
||||
response.Success(c, gin.H{
|
||||
"code": "SUCCESS",
|
||||
"message": "回调已接收",
|
||||
|
||||
Reference in New Issue
Block a user