Compare commits

..

4 Commits

4 changed files with 81 additions and 19 deletions

View File

@ -15,10 +15,11 @@ var (
type OrderThirdPayLog struct { type OrderThirdPayLog struct {
Id int64 Id int64
OrderId int64 `xorm:"'order_id' bigint(20)"` OrderId int64 `xorm:"'order_id' bigint(20)"`
PayCallback string `xorm:"'pay_callback' varchar(255)"` PayCallback string `xorm:"'pay_callback' JSON"`
Status int `xorm:"'status' TINYINT"` Status int `xorm:"'status' TINYINT"`
MerchantParam string `xorm:"'merchant_param' varchar(255)"` PayParam string `xorm:"'pay_param' JSON"`
MerchantCallback string `xorm:"'merchant_callback' varchar(255)"` MerchantCallback string `xorm:"'merchant_callback' JSON"`
Type int `xorm:"'type' TINYINT"`
CreateTime time.Time `xorm:"'create_time' datetime created"` CreateTime time.Time `xorm:"'create_time' datetime created"`
} }

View File

@ -149,8 +149,8 @@ func ALiOrderQuery(ctx context.Context, aliConfig AliPay, OrderNo string) (PayOr
tradeStateDesc = "未付款交易超时关闭,或支付完成后全额退款" tradeStateDesc = "未付款交易超时关闭,或支付完成后全额退款"
} }
amountTotal, _ := strconv.Atoi(aliRsp.Response.TotalAmount) amountTotal, _ := strconv.ParseFloat(aliRsp.Response.TotalAmount, 64)
payerTotal, _ := strconv.Atoi(aliRsp.Response.BuyerPayAmount) payerTotal, _ := strconv.ParseFloat(aliRsp.Response.BuyerPayAmount, 64)
// 构建数据 // 构建数据
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo) outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo)
return PayOrderQueryInfo{ return PayOrderQueryInfo{
@ -177,9 +177,10 @@ func AliRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest)
return OrderRefundInfo{}, err return OrderRefundInfo{}, err
} }
// 请求参数 // 请求参数
refundAmount := float64(orderRefundRequest.RefundAmount) / 100.0
bm := make(gopay.BodyMap) bm := make(gopay.BodyMap)
bm.Set("out_trade_no", orderRefundRequest.OrderId). bm.Set("out_trade_no", orderRefundRequest.OrderId).
Set("refund_amount", orderRefundRequest.RefundAmount). Set("refund_amount", refundAmount).
Set("refund_reason", orderRefundRequest.RefundReason). Set("refund_reason", orderRefundRequest.RefundReason).
Set("out_request_no", orderRefundRequest.RefundOrderId) Set("out_request_no", orderRefundRequest.RefundOrderId)
@ -193,14 +194,15 @@ func AliRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest)
return OrderRefundInfo{}, err return OrderRefundInfo{}, err
} }
refundFee, _ := strconv.Atoi(aliRsp.Response.RefundFee) refundFee, _ := strconv.ParseFloat(aliRsp.Response.RefundFee, 64)
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo) outTradeNo, _ := strconv.ParseFloat(aliRsp.Response.OutTradeNo, 64)
return OrderRefundInfo{ return OrderRefundInfo{
OutTradeNo: int64(outTradeNo), OutTradeNo: int64(outTradeNo),
TransactionId: aliRsp.Response.TradeNo, TransactionId: aliRsp.Response.TradeNo,
RefundFee: int64(refundFee * 100), RefundFee: int64(refundFee * 100),
RefundOrderId: orderRefundRequest.RefundOrderId, RefundOrderId: orderRefundRequest.RefundOrderId,
RefundStatus: payCommon.PAY_REFUND_STATU_SUCCESS, RefundStatus: payCommon.PAY_REFUND_STATU_SUCCESS,
RefundSuccessTime: aliRsp.Response.GmtRefundPay,
}, nil }, nil
} }
@ -230,7 +232,7 @@ func AliRefundOrderQuery(ctx context.Context, orderRefundQueryRequest OrderRefun
} }
return OrderRefundInfo{}, err return OrderRefundInfo{}, err
} }
refundFee, _ := strconv.Atoi(aliRsp.Response.RefundAmount) refundFee, _ := strconv.ParseFloat(aliRsp.Response.RefundAmount, 64)
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo) outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo)
refundOrderId, _ := strconv.Atoi(aliRsp.Response.OutRequestNo) refundOrderId, _ := strconv.Atoi(aliRsp.Response.OutRequestNo)
return OrderRefundInfo{ return OrderRefundInfo{

File diff suppressed because one or more lines are too long

View File

@ -73,7 +73,7 @@ func WxH5PayInfo(c context.Context, payOrderRequest PayOrderRequest) (string, er
bm.Set("appid", payOrderRequest.Wx.AppId). bm.Set("appid", payOrderRequest.Wx.AppId).
Set("mchid", payOrderRequest.Wx.MchId). Set("mchid", payOrderRequest.Wx.MchId).
Set("description", payOrderRequest.Description). Set("description", payOrderRequest.Description).
Set("out_trade_no", payOrderRequest.OrderId). Set("out_trade_no", strconv.FormatInt(payOrderRequest.OrderId, 10)).
Set("time_expire", expire). Set("time_expire", expire).
Set("notify_url", fmt.Sprintf(envConfig.PayService.Host+payCommon.WX_NOTIFY_URL_TEST+"%d", payOrderRequest.PayChannelId)). Set("notify_url", fmt.Sprintf(envConfig.PayService.Host+payCommon.WX_NOTIFY_URL_TEST+"%d", payOrderRequest.PayChannelId)).
SetBodyMap("amount", func(bm gopay.BodyMap) { SetBodyMap("amount", func(bm gopay.BodyMap) {
@ -199,10 +199,10 @@ func WxOrderRefund(ctx context.Context, orderRefundRequest OrderRefundRequest) (
} }
// 初始化 BodyMap // 初始化 BodyMap
bm := make(gopay.BodyMap) bm := make(gopay.BodyMap)
bm.Set("out_trade_no", orderRefundRequest.OrderId). bm.Set("out_trade_no", strconv.FormatInt(orderRefundRequest.OrderId, 10)).
Set("sign_type", "MD5"). Set("sign_type", "MD5").
// 必填 退款订单号(程序员定义的) // 必填 退款订单号(程序员定义的)
Set("out_refund_no", orderRefundRequest.RefundOrderId). Set("out_refund_no", strconv.FormatInt(orderRefundRequest.RefundOrderId, 10)).
// 选填 退款描述 // 选填 退款描述
Set("reason", orderRefundRequest.RefundReason). Set("reason", orderRefundRequest.RefundReason).
SetBodyMap("amount", func(bm gopay.BodyMap) { SetBodyMap("amount", func(bm gopay.BodyMap) {
@ -298,7 +298,7 @@ func WxCloseOrder(ctx context.Context, orderCloseRequest OrderCloseRequest) (Ord
if err != nil { if err != nil {
return OrderCloseInfo{}, err return OrderCloseInfo{}, err
} }
wxRsp, err := wxClient.V3TransactionCloseOrder(ctx, "FY160932049419637602") wxRsp, err := wxClient.V3TransactionCloseOrder(ctx, strconv.FormatInt(orderCloseRequest.OrderId, 10))
if err != nil { if err != nil {
return OrderCloseInfo{}, err return OrderCloseInfo{}, err
} }