123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- /*
- * @description:计量支付接口相关操作
- * @Author: CP
- * @Date: 2020-09-03 16:57:56
- * @FilePath: \construction_management\lib\jlzf.go
- */
- package lib
- import (
- "errors"
- "fmt"
- "time"
- "github.com/dgrijalva/jwt-go"
- "github.com/spf13/viper"
- "go.mod/conf"
- "go.mod/web/utils"
- "go.mod/web/viewmodels"
- )
- type Jlzf struct {
- AuthUrl string
- App string
- Token string
- }
- //创建项目用户service
- func NewJlzf() *Jlzf {
- // 自动识别开发环境和生产环境
- debug := getEnvInfo("DEBUG")
- AuthUrl := ""
- if debug {
- AuthUrl = "http://ljr.jl.com:7002"
- }
- return &Jlzf{
- AuthUrl: AuthUrl,
- }
- }
- // 生成请求token
- func makeTokenString(claimsData jwt.MapClaims) (string, error) {
- var (
- tokenString string
- err error
- )
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, claimsData)
- if tokenString, err = token.SignedString([]byte(conf.JLSecretKey)); err != nil {
- return "", err
- }
- return tokenString, nil
- }
- // 拉取计量项目信息
- func (j *Jlzf) GetProjectAndAccount(code string, account string) (map[string]interface{}, error) {
- var (
- tokenString string
- err error
- resultData map[string]interface{}
- )
- // 1.生成请求数据
- expirationTime := time.Now().Add(24 * time.Hour)
- claimsData := jwt.MapClaims{
- "data": map[string]string{"code": code, "account": account},
- "exp": expirationTime.Unix(),
- // "StandardClaims": jwt.StandardClaims{
- // ExpiresAt: expirationTime.Unix(),
- // },
- }
- // 1-1.生成token
- if tokenString, err = makeTokenString(claimsData); err != nil {
- return nil, errors.New("生成请求token错误")
- }
- fmt.Println(tokenString)
- // 1-2.发送请求
- if resultData, err = utils.PullData("GET", j.AuthUrl+"/management/project", tokenString); err != nil {
- return nil, errors.New(fmt.Sprintf("计量错误,err= %s", err))
- }
- fmt.Println(resultData)
- return resultData, nil
- // client := &http.Client{}
- // data := url.Values{}
- // data.Set("auth", tokenString)
- // parameter := strings.NewReader(data.Encode())
- // reqest, err := http.NewRequest("GET", j.AuthUrl, parameter)
- // if err != nil {
- // return nil, errors.New("计量网络出现问题")
- // }
- // reqest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
- // // 发送请求
- // response, err := client.Do(reqest)
- }
- func (j *Jlzf) GetAccount() error {
- return nil
- }
- // 验证计量支付项目账号的登陆密码
- func (j *Jlzf) LoginValid(loginData viewmodels.Login) error {
- // TODO 生成令牌和提交时间
- //const [encryptToken, postTime] = this.generateCLDToken();
- // TODO 有接口在调试
- /*
- req := HttpRequest.NewRequest()
- res, _ := req.Post(j.AuthUrl, map[string]interface{}{
- "code": loginData.Code,
- "account": loginData.Account,
- "password": loginData.Password,
- "posttime": "",
- "token": "",
- })
- _, err := res.Body()
- if err != nil {
- return errors.New("账号或密码不正确")
- }
- */
- //return string(body)
- return nil
- }
- func getEnvInfo(env string) bool {
- viper.AutomaticEnv()
- return viper.GetBool(env)
- }
|