126 lines
2.7 KiB
Go
126 lines
2.7 KiB
Go
|
package models
|
|||
|
|
|||
|
import (
|
|||
|
"bytes"
|
|||
|
"encoding/json"
|
|||
|
"fmt"
|
|||
|
"go-admin/logger"
|
|||
|
"io/ioutil"
|
|||
|
"net/http"
|
|||
|
"net/url"
|
|||
|
)
|
|||
|
|
|||
|
var exchangeClient = ExchangeClient{
|
|||
|
Name: "diwei",
|
|||
|
Password: "deovo123",
|
|||
|
BaseURL: "http://api.china95059.net:8080",
|
|||
|
}
|
|||
|
|
|||
|
type ExchangeClient struct {
|
|||
|
Name string
|
|||
|
Password string
|
|||
|
BaseURL string
|
|||
|
}
|
|||
|
|
|||
|
//账号:diwei
|
|||
|
//密码:deovo123
|
|||
|
//func ExchangeLatestUSD() (float64, error) {
|
|||
|
// //params := &url.Values{}
|
|||
|
// //latestUSDResp := &LatestUSDResp{}
|
|||
|
// //err := exchangeClient.get("/latest/USD", params, latestUSDResp)
|
|||
|
// //if err != nil {
|
|||
|
// // log.Error().Msgf("err:%#v", err)
|
|||
|
// // return 0, err
|
|||
|
// //}
|
|||
|
// //return latestUSDResp.ConversionRates.CNY, nil
|
|||
|
//}
|
|||
|
|
|||
|
//&mobile=15015001500 &msg=【绿城信息】您
|
|||
|
|
|||
|
func SmsSend(tel, content string) error {
|
|||
|
params := &url.Values{}
|
|||
|
params.Set("mobile", tel)
|
|||
|
params.Set("msg", content)
|
|||
|
|
|||
|
//latestUSDResp := &LatestUSDResp{}
|
|||
|
err := exchangeClient.get("/sms/send?", params, nil)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
////https://v6.exchangerate-api.com/v6/a9208b64e4f178642020790f/latest/USD
|
|||
|
|
|||
|
func (m *ExchangeClient) get(amApi string, params *url.Values, resp interface{}) error {
|
|||
|
params.Set("name", m.Name)
|
|||
|
params.Set("pswd", m.Password)
|
|||
|
uri := m.BaseURL + amApi
|
|||
|
fmt.Println("uri:", uri)
|
|||
|
fmt.Println("uri:", uri+params.Encode())
|
|||
|
req, err := http.NewRequest("GET", uri+params.Encode(), nil)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
|
|||
|
req.Header.Set("Content-Type", "application/json")
|
|||
|
res, err := (&http.Client{}).Do(req)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
defer res.Body.Close()
|
|||
|
|
|||
|
data, err := ioutil.ReadAll(res.Body)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
//fmt.Println("返回数据data:")
|
|||
|
fmt.Println("Body:", string(data))
|
|||
|
//if err = json.Unmarshal(data, &resp); err != nil {
|
|||
|
// logger.Error("err:", err)
|
|||
|
// return err
|
|||
|
//}
|
|||
|
return nil
|
|||
|
}
|
|||
|
|
|||
|
func (m *ExchangeClient) post(amApi string, params, resp interface{}) error {
|
|||
|
uri := m.BaseURL + amApi
|
|||
|
data, err := json.Marshal(params)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
|
|||
|
req, err := http.NewRequest("POST", uri, bytes.NewReader(data))
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
|
|||
|
req.Header.Set("Content-Type", "application/json")
|
|||
|
res, err := (&http.Client{}).Do(req)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
defer res.Body.Close()
|
|||
|
|
|||
|
//fmt.Println("返回数据data:")
|
|||
|
//fmt.Println("Body:", string(data))
|
|||
|
data, err = ioutil.ReadAll(res.Body)
|
|||
|
if err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
if err = json.Unmarshal(data, resp); err != nil {
|
|||
|
logger.Error("err:", err)
|
|||
|
return err
|
|||
|
}
|
|||
|
return nil
|
|||
|
}
|