first commit
This commit is contained in:
@@ -0,0 +1,226 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"strconv"
|
||||
"xiawan/wx/api/req"
|
||||
"xiawan/wx/api/vo"
|
||||
"xiawan/wx/clientsdk"
|
||||
"xiawan/wx/clientsdk/baseinfo"
|
||||
"xiawan/wx/srv/wxface"
|
||||
)
|
||||
|
||||
// 获取银行卡信息
|
||||
func GetBandCardListService(queryKey string) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
tmpReqItem := &baseinfo.TenPayReqItem{}
|
||||
tmpReqItem.CgiCMD = 72
|
||||
tmpReqItem.ReqText = ""
|
||||
tenPayResp, err := reqInvoker.SendBandCardRequest(tmpReqItem)
|
||||
if err != nil {
|
||||
return vo.NewFail("GetBandCardListService err:" + err.Error())
|
||||
}
|
||||
// 解析响应
|
||||
retResp := &baseinfo.TenPayResp{}
|
||||
retText := tenPayResp.GetRetText().GetBuffer()
|
||||
err = json.Unmarshal(retText, retResp)
|
||||
if err != nil {
|
||||
return vo.NewFail("查询QB信息失败")
|
||||
}
|
||||
return vo.NewSuccessObj(retResp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// 生成自定义二维码
|
||||
func GeneratePayQCodeService(queryKey string, req req.GeneratePayQCodeModel) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
var tenpayUrl = "delay_confirm_flag=0&desc=" + req.Name + "&fee=" + req.Money + "&fee_type=CNY&pay_scene=31&receiver_name=" + wxAccount.GetUserInfo().WxId + "&scene=31&transfer_scene=2"
|
||||
wcPaySign, err := clientsdk.TenPaySignDes3(tenpayUrl, "%^&*Tenpay!@#$")
|
||||
if err != nil {
|
||||
return vo.NewFail("no")
|
||||
}
|
||||
tenpayUrl += "&WCPaySign=" + wcPaySign
|
||||
tmpReqItem := &baseinfo.TenPayReqItem{}
|
||||
tmpReqItem.CgiCMD = 94
|
||||
tmpReqItem.ReqText = tenpayUrl
|
||||
tenPayResp, err := reqInvoker.SendTenPayRequest(tmpReqItem)
|
||||
if err != nil {
|
||||
return vo.NewFail("GetBandCardListService err:" + err.Error())
|
||||
}
|
||||
// 解析响应
|
||||
retResp := &baseinfo.GeneratePayQCodeResp{}
|
||||
retText := tenPayResp.GetRetText().GetBuffer()
|
||||
err = json.Unmarshal(retText, retResp)
|
||||
if err != nil {
|
||||
return vo.NewFail("查询QB信息失败")
|
||||
}
|
||||
return vo.NewSuccessObj(retResp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// CollectMoneyService 确认收款
|
||||
func CollectMoneyService(queryKey string, req req.CollectmoneyModel) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
tenpayUrl := "invalid_time=" + req.InvalidTime + "&op=confirm&total_fee=0&trans_id=" + req.TransFerId + "&transaction_id=" + req.TransactionId + "&username=" + req.ToUserName
|
||||
wcPaySign, err := clientsdk.TenPaySignDes3(tenpayUrl, "%^&*Tenpay!@#$")
|
||||
if err != nil {
|
||||
return vo.NewFail("no")
|
||||
}
|
||||
tenpayUrl += "&WCPaySign=" + wcPaySign
|
||||
tmpReqItem := &baseinfo.TenPayReqItem{}
|
||||
tmpReqItem.CgiCMD = 85
|
||||
tmpReqItem.ReqText = tenpayUrl
|
||||
tenPayResp, err := reqInvoker.SendTenPayRequest(tmpReqItem)
|
||||
if err != nil {
|
||||
return vo.NewFail("CollectMoneyService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(tenPayResp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// 拆红包
|
||||
func OpenRedEnvelopesService(queryKey string, req baseinfo.HongBaoItem) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
rsp, err := reqInvoker.SendOpenRedEnvelopesRequest(&req)
|
||||
if err != nil {
|
||||
return vo.NewFail("CollectMoneyService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(rsp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// 创建红包
|
||||
func WXCreateRedPacketService(queryKey string, req baseinfo.RedPacket) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
rsp, err := reqInvoker.SendWXCreateRedPacketRequest(&req)
|
||||
if err != nil {
|
||||
return vo.NewFail("CollectMoneyService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(rsp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// 查看红包详情
|
||||
func QueryRedEnvelopesDetailService(queryKey string, req baseinfo.HongBaoItem) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
rsp, err := reqInvoker.SendRedEnvelopesDetailRequest(&req)
|
||||
if err != nil {
|
||||
return vo.NewFail("QueryRedEnvelopesDetailService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(string(rsp.GetRetText().GetBuffer()), "")
|
||||
})
|
||||
}
|
||||
|
||||
// 查看红包领取列表
|
||||
func GetRedPacketListService(queryKey string, req baseinfo.GetRedPacketList) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
rsp, err := reqInvoker.SendGetRedPacketListRequest(&req)
|
||||
if err != nil {
|
||||
return vo.NewFail("QueryRedEnvelopesDetailService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(string(rsp.GetRetText().GetBuffer()), "")
|
||||
})
|
||||
}
|
||||
|
||||
// CreatePreTransferService 创建转账
|
||||
func CreatePreTransferService(queryKey string, req *req.CreatePreTransfer) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
tenPayResp, err := reqInvoker.SendCreatePreTransferRequest(req)
|
||||
if err != nil {
|
||||
return vo.NewFail("CreatePreTransferService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(tenPayResp, "")
|
||||
})
|
||||
}
|
||||
|
||||
// ConfirmPreTransferService 确认转账
|
||||
func ConfirmPreTransferService(queryKey string, req *req.ConfirmPreTransfer) vo.DTO {
|
||||
return checkExIdPerformNoCreateConnect(queryKey, func(iwxConnect wxface.IWXConnect, newIWXConnect bool) vo.DTO {
|
||||
wxAccount := iwxConnect.GetWXAccount()
|
||||
loginState := wxAccount.GetLoginState()
|
||||
//判断在线情况
|
||||
if loginState == baseinfo.MMLoginStateNoLogin {
|
||||
return vo.NewFail("该账号需要重新登录!loginState == MMLoginStateNoLogin ")
|
||||
} else if !iwxConnect.CheckOnLineStatus() {
|
||||
return vo.NewFail("账号离线,自动上线失败!loginState == " + strconv.Itoa(int(wxAccount.GetLoginState())))
|
||||
}
|
||||
reqInvoker := iwxConnect.GetWXReqInvoker()
|
||||
tenPayResp, err := reqInvoker.SendConfirmPreTransferRequest(req)
|
||||
if err != nil {
|
||||
return vo.NewFail("ConfirmPreTransferService err:" + err.Error())
|
||||
}
|
||||
return vo.NewSuccessObj(tenPayResp, "")
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user