Compare commits

..

4 Commits

4 changed files with 81 additions and 19 deletions

View File

@ -15,10 +15,11 @@ var (
type OrderThirdPayLog struct {
Id int64
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"`
MerchantParam string `xorm:"'merchant_param' varchar(255)"`
MerchantCallback string `xorm:"'merchant_callback' varchar(255)"`
PayParam string `xorm:"'pay_param' JSON"`
MerchantCallback string `xorm:"'merchant_callback' JSON"`
Type int `xorm:"'type' TINYINT"`
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 = "未付款交易超时关闭,或支付完成后全额退款"
}
amountTotal, _ := strconv.Atoi(aliRsp.Response.TotalAmount)
payerTotal, _ := strconv.Atoi(aliRsp.Response.BuyerPayAmount)
amountTotal, _ := strconv.ParseFloat(aliRsp.Response.TotalAmount, 64)
payerTotal, _ := strconv.ParseFloat(aliRsp.Response.BuyerPayAmount, 64)
// 构建数据
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo)
return PayOrderQueryInfo{
@ -177,9 +177,10 @@ func AliRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest)
return OrderRefundInfo{}, err
}
// 请求参数
refundAmount := float64(orderRefundRequest.RefundAmount) / 100.0
bm := make(gopay.BodyMap)
bm.Set("out_trade_no", orderRefundRequest.OrderId).
Set("refund_amount", orderRefundRequest.RefundAmount).
Set("refund_amount", refundAmount).
Set("refund_reason", orderRefundRequest.RefundReason).
Set("out_request_no", orderRefundRequest.RefundOrderId)
@ -193,14 +194,15 @@ func AliRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest)
return OrderRefundInfo{}, err
}
refundFee, _ := strconv.Atoi(aliRsp.Response.RefundFee)
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo)
refundFee, _ := strconv.ParseFloat(aliRsp.Response.RefundFee, 64)
outTradeNo, _ := strconv.ParseFloat(aliRsp.Response.OutTradeNo, 64)
return OrderRefundInfo{
OutTradeNo: int64(outTradeNo),
TransactionId: aliRsp.Response.TradeNo,
RefundFee: int64(refundFee * 100),
RefundOrderId: orderRefundRequest.RefundOrderId,
RefundStatus: payCommon.PAY_REFUND_STATU_SUCCESS,
RefundSuccessTime: aliRsp.Response.GmtRefundPay,
}, nil
}
@ -230,7 +232,7 @@ func AliRefundOrderQuery(ctx context.Context, orderRefundQueryRequest OrderRefun
}
return OrderRefundInfo{}, err
}
refundFee, _ := strconv.Atoi(aliRsp.Response.RefundAmount)
refundFee, _ := strconv.ParseFloat(aliRsp.Response.RefundAmount, 64)
outTradeNo, _ := strconv.Atoi(aliRsp.Response.OutTradeNo)
refundOrderId, _ := strconv.Atoi(aliRsp.Response.OutRequestNo)
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).
Set("mchid", payOrderRequest.Wx.MchId).
Set("description", payOrderRequest.Description).
Set("out_trade_no", payOrderRequest.OrderId).
Set("out_trade_no", strconv.FormatInt(payOrderRequest.OrderId, 10)).
Set("time_expire", expire).
Set("notify_url", fmt.Sprintf(envConfig.PayService.Host+payCommon.WX_NOTIFY_URL_TEST+"%d", payOrderRequest.PayChannelId)).
SetBodyMap("amount", func(bm gopay.BodyMap) {
@ -199,10 +199,10 @@ func WxOrderRefund(ctx context.Context, orderRefundRequest OrderRefundRequest) (
}
// 初始化 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("out_refund_no", orderRefundRequest.RefundOrderId).
Set("out_refund_no", strconv.FormatInt(orderRefundRequest.RefundOrderId, 10)).
// 选填 退款描述
Set("reason", orderRefundRequest.RefundReason).
SetBodyMap("amount", func(bm gopay.BodyMap) {
@ -298,7 +298,7 @@ func WxCloseOrder(ctx context.Context, orderCloseRequest OrderCloseRequest) (Ord
if err != nil {
return OrderCloseInfo{}, err
}
wxRsp, err := wxClient.V3TransactionCloseOrder(ctx, "FY160932049419637602")
wxRsp, err := wxClient.V3TransactionCloseOrder(ctx, strconv.FormatInt(orderCloseRequest.OrderId, 10))
if err != nil {
return OrderCloseInfo{}, err
}