63 lines
1.7 KiB
Go
63 lines
1.7 KiB
Go
package app_server
|
|
|
|
import (
|
|
"fmt"
|
|
"git.rosy.net.cn/baseapi/platformapi/tonglianpayapi"
|
|
"git.rosy.net.cn/jx-print/dao"
|
|
userModel "git.rosy.net.cn/jx-print/model"
|
|
printModel "git.rosy.net.cn/jx-print/model/app_model"
|
|
)
|
|
|
|
type PrintPay struct {
|
|
}
|
|
|
|
var PrintPayServer = new(PrintPay)
|
|
|
|
// Pay4Order 支付
|
|
func (p *PrintPay) Pay4Order(user *userModel.User, ip string, totalFee int, payType int, vendorPayType, printNo string) (orderPay *printModel.OrderPay, err error) {
|
|
if user.OpenId == "" {
|
|
return nil, fmt.Errorf("当前用户未微信授权,无法使用微信支付")
|
|
}
|
|
switch payType {
|
|
case printModel.PayTypeWX:
|
|
orderPay, err = pay4OrderByWX(user, totalFee, ip, vendorPayType)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
orderPay.PrintNo = printNo
|
|
if err := dao.InsertPrinterPayRecord(orderPay); err != nil {
|
|
return nil, err
|
|
}
|
|
case printModel.PayTypeTL:
|
|
orderPay, err = pay4OrderByTL(user, totalFee, payType, vendorPayType)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
orderPay.PrintNo = printNo
|
|
if err := dao.InsertPrinterPayRecord(orderPay); err != nil {
|
|
return nil, err
|
|
}
|
|
default:
|
|
err = fmt.Errorf("支付方式:%d当前不支持", payType)
|
|
}
|
|
|
|
return orderPay, err
|
|
}
|
|
|
|
// OnTLPayCallback 通联充值回调处理
|
|
func (p *PrintPay) OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) {
|
|
switch call.TrxCode {
|
|
case tonglianpayapi.MsgTypePay: // 微信支付回调
|
|
err = onTLPayFinished(call)
|
|
case tonglianpayapi.MsgTypeRefund: // 微信退款回调
|
|
// err = onTLpayRefund(call)
|
|
case tonglianpayapi.MsgTypePayZFB: // 支付宝支付回调
|
|
// err = onTLpayFinished(call)
|
|
case tonglianpayapi.MsgTypeRefundZFB: // 支付宝退款回调
|
|
// err = onTLpayRefund(call)
|
|
default:
|
|
|
|
}
|
|
return err
|
|
}
|