finclip-app-manager/infrastructure/client/httpcall/purchasing_rights.go

139 lines
4.8 KiB
Go

package httpcall
import (
"context"
"encoding/json"
"errors"
"finclip-app-manager/infrastructure/config"
"fmt"
"net/http"
)
//创建小程序、应用申请权限
const (
PAY_ADD_TYPE_APP = 1
PAY_ADD_TYPE_BINDING = 2
PAY_ID_STATUS_NO_USE = 1
PAY_ID_STATUS_USING = 2
PAY_ID_STATUS_EXPIRE = 3
)
type PayAddLimitReq struct {
Type int `json:"type"`
AccountId string `json:"accountId"`
BusinessId string `json:"businessId"`
BusinessName string `json:"businessName"`
}
type PayAddLimitRsp struct {
Errcode string `json:"errcode"`
Error string `json:"error"`
Data struct {
RightId string `json:"rightId"`
EndTime int64 `json:"endTime"`
} `json:"data"`
}
func (c *Client) PayAddLimit(ctx context.Context, req *PayAddLimitReq) (*PayAddLimitRsp, int, error) {
url := config.GetConfig().PayAddLimitHost + config.GetConfig().PayAddLimitURL
log.Infof("PayAddLimit url:%s,req:%+v", url, req)
rsp, err := c.Request(ctx).SetHeaders(c.getNewDefaultReqHeader()).SetBody(req).Post(url)
if err != nil {
log.Errorf("PayAddLimit err:%+v,status code:%+v", err, rsp)
return nil, http.StatusInternalServerError, err
}
if rsp.StatusCode() != http.StatusOK {
log.Errorf("PayAddLimit status code no 200 :%+v,boyd:%+v", rsp.StatusCode(), rsp.String())
return nil, rsp.StatusCode(), nil
}
rspInfo := PayAddLimitRsp{}
if err := json.Unmarshal(rsp.Body(), &rspInfo); err != nil {
log.Errorf("PayAddLimit json unmarshal err:%+v,rsp body:%+v", err, rsp.String())
return nil, rsp.StatusCode(), err
}
log.Infof("PayAddLimit rsp:%+v", rsp.String())
return &rspInfo, rsp.StatusCode(), nil
}
func (c *Client) PayUpdateLimit(ctx context.Context, req *PayAddLimitReq) (*PayAddLimitRsp, int, error) {
url := config.GetConfig().PayAddLimitHost + config.GetConfig().PayUpdateLimitURL
log.Infof("PayAddLimit url:%s,req:%+v", url, req)
rsp, err := c.Request(ctx).SetHeaders(c.getNewDefaultReqHeader()).SetBody(req).Post(url)
if err != nil {
log.Errorf("PayAddLimit err:%+v,status code:%+v", err, rsp)
return nil, http.StatusInternalServerError, err
}
if rsp.StatusCode() != http.StatusOK {
log.Errorf("PayAddLimit status code no 200 :%+v,boyd:%+v", rsp.StatusCode(), rsp.String())
return nil, rsp.StatusCode(), nil
}
rspInfo := PayAddLimitRsp{}
if err := json.Unmarshal(rsp.Body(), &rspInfo); err != nil {
log.Errorf("PayAddLimit json unmarshal err:%+v,rsp body:%+v", err, rsp.String())
return nil, rsp.StatusCode(), err
}
log.Infof("PayAddLimit rsp:%+v", rsp.String())
return &rspInfo, rsp.StatusCode(), nil
}
type PayCheckIdStatusRsp struct {
Errcode string `json:"errcode"`
Error string `json:"error"`
Data struct {
Status int `json:"status"`
} `json:"data"`
}
func (c *Client) PayCheckIdStatus(ctx context.Context, id string) (int, int, error) {
url := fmt.Sprintf(config.GetConfig().PayAddLimitHost+config.GetConfig().PayCheckIdStatusURL+"?businessId=%s", id)
log.Infof("PayCheckIdStatus url:%s", url)
rsp, err := c.Request(ctx).SetHeaders(c.getNewDefaultReqHeader()).Get(url)
if err != nil {
log.Errorf("PayCheckIdStatus err:%+v,status code:%+v", err, rsp)
return 0, http.StatusInternalServerError, err
}
if rsp.StatusCode() != http.StatusOK {
log.Errorf("PayCheckIdStatus status code no 200 :%+v,boyd:%+v", rsp.StatusCode(), rsp.String())
return 0, rsp.StatusCode(), errors.New("PayCheckIdStatus status code no ok")
}
rspInfo := PayCheckIdStatusRsp{}
if err := json.Unmarshal(rsp.Body(), &rspInfo); err != nil {
log.Errorf("PayCheckIdStatus json unmarshal err:%+v,rsp body:%+v", err, rsp.String())
return 0, rsp.StatusCode(), err
}
log.Infof("PayCheckIdStatus rsp:%+v", rsp.String())
return rspInfo.Data.Status, rsp.StatusCode(), nil
}
type PayFixOldDataReq struct {
OrganId string `json:"organId"`
Type int `json:"type"`
BusinessId string `json:"businessId"`
BusinessName string `json:"businessName"`
CreateTime int64 `json:"createTime"`
}
func (c *Client) PayFixOldData(ctx context.Context, req *PayFixOldDataReq) (int, error) {
url := fmt.Sprintf(config.GetConfig().PayAddLimitHost + config.GetConfig().PayFixOldDataURL)
rsp, err := c.Request(ctx).SetHeaders(c.getNewDefaultReqHeader()).SetBody(req).Post(url)
if err != nil {
log.Errorf("PayFixOldData err:%+v,status code:%+v", err, rsp)
return http.StatusInternalServerError, err
}
if rsp.StatusCode() != http.StatusOK {
log.Errorf("PayFixOldData status code no 200 :%+v,boyd:%+v", rsp.StatusCode(), rsp.String())
return rsp.StatusCode(), errors.New("PayCheckIdStatus status code no ok")
}
rspInfo := PayCheckIdStatusRsp{}
if err := json.Unmarshal(rsp.Body(), &rspInfo); err != nil {
log.Errorf("PayFixOldData json unmarshal err:%+v,rsp body:%+v", err, rsp.String())
return rsp.StatusCode(), err
}
//log.Infof("PayFixOldData rsp:%+v", rsp.String())
return rsp.StatusCode(), nil
}