1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package report
- import (
- "context"
- apiShanghu "duoduo/apis/shanghu"
- "duoduo/models/shanghu"
- "encoding/json"
- "fmt"
- "github.com/go-pay/gopay"
- "time"
- )
- func CashOut() {
- for true {
- var cashOut shanghu.CashOut
- bm := make(gopay.BodyMap)
- cashOut.Status = 1 // 提现中
- cashOutInfo, err := cashOut.GetCashOutByStatus()
- if err != nil {
- fmt.Println("GetCashOutByStatus err ", err.Error())
- break
- }
- wechatV3, err := apiShanghu.NewWechatServiceV3("")
- if err != nil {
- break
- }
- bm.Set("need_query_detail", false)
- transferBatch, err := wechatV3.V3TransferMerchantQuery(context.Background(), cashOutInfo.PartnerTradeNo, bm)
- if err != nil {
- break
- }
- by, _ := json.Marshal(transferBatch)
- fmt.Println(string(by))
- if transferBatch.Code != 0 {
- break
- }
- if transferBatch.Response.TransferBatch.FailNum == 0 && transferBatch.Response.TransferBatch.BatchStatus == "FINISHED" { //转账成功
- cashOut.PartnerTradeNo = transferBatch.Response.TransferBatch.OutBatchNo
- cashOut.Status = 3
- err = cashOut.UpdateCashOutStatus()
- if err != nil {
- break
- }
- } else if transferBatch.Response.TransferBatch.FailNum > 0 { //失败
- cashOut.PartnerTradeNo = transferBatch.Response.TransferBatch.OutBatchNo
- cashOut.Status = 2
- err = cashOut.UpdateCashOutStatus()
- if err != nil {
- break
- }
- } else if transferBatch.Response.TransferBatch.BatchStatus == "CLOSE" {
- cashOut.PartnerTradeNo = transferBatch.Response.TransferBatch.OutBatchNo
- cashOut.Status = 2
- cashOut.FailRes = transferBatch.Response.TransferBatch.CloseReason
- err = cashOut.UpdateCashOutStatusClose()
- if err != nil {
- break
- }
- } else {
- time.Sleep(time.Second * 1)
- continue
- }
- }
- }
|