Browse Source

短信验证码

1 2 weeks ago
parent
commit
8c0b00b297
1 changed files with 125 additions and 0 deletions
  1. 125 0
      common/captcha.go

+ 125 - 0
common/captcha.go

@@ -0,0 +1,125 @@
+package common
+
+import (
+	"bytes"
+	"encoding/json"
+	"git.listensoft.net/tool/jspkit/common/lxhttp"
+	"git.listensoft.net/tool/jspkit/logger"
+	"io"
+	"net/http"
+	"strings"
+	"time"
+
+	"github.com/ysmood/leakless/pkg/utils"
+)
+
+func GetMobileCaptcha(mobile string) string {
+	client := &http.Client{
+		Timeout: 60 * time.Second,
+	}
+	defer client.CloseIdleConnections()
+	resp, err := client.Post("https://public.listensoft.net/api/getTaxSms", "application/json", strings.NewReader(`{"mobile":"`+mobile+`"}`))
+	if err != nil {
+		return ""
+	}
+	body, err := io.ReadAll(resp.Body)
+	if err != nil {
+		return ""
+	}
+	logger.Info("获取到的手机验证码: " + string(body))
+	return string(body)
+}
+
+type GsnvYzm struct {
+	ID   uint   `json:"id"`
+	Code string `json:"code"`
+}
+
+// 获取工商年报验证码 code验证码 id正确后需要上传纳税人识别号
+// 数组返回最多四个验证码 空或者都不对报错
+// 验证码正确后调用上传纳税人识别号接口,两小时内返回都是第一个
+func GetGsnbMobileCaptcha(mobile string, taxNo string) []GsnvYzm {
+	utils.Sleep(60)
+	client := &http.Client{
+		Timeout: 60 * time.Second,
+	}
+	defer client.CloseIdleConnections()
+	resp, err := client.Post("https://public.listensoft.net/api/getGsSms", "application/json", strings.NewReader(`{"mobile":"`+mobile+`","taxNo":"`+taxNo+`"}`))
+	if err != nil {
+		return []GsnvYzm{}
+	}
+	body, err := io.ReadAll(resp.Body)
+	if err != nil {
+		return []GsnvYzm{}
+	}
+	list := []GsnvYzm{}
+	json.Unmarshal(body, &list)
+	return list
+}
+
+// 上传工商年报验证码对应的纳税人识别号 code验证码 id  正确后需要上传纳税人识别号
+func UploadGsnbMobileCaptcha(id uint, taxNo string) {
+	utils.Sleep(60)
+	client := &http.Client{
+		Timeout: 60 * time.Second,
+	}
+	defer client.CloseIdleConnections()
+	param := map[string]interface{}{
+		"id":    id,
+		"taxNo": taxNo,
+	}
+	bys, _ := json.Marshal(param)
+	client.Post("https://public.listensoft.net/api/uploadGsSms", "application/json", bytes.NewReader(bys))
+	// _, err := io.ReadAll(resp.Body)
+	// if err != nil {
+	// 	return
+	// }
+}
+
+// area--》传验证码中的地区关键字
+func GetMobileCaptchaForArea(mobile, area string) string {
+	resp, err := http.Post("https://public.listensoft.net/api/getTaxSms", "application/json", strings.NewReader(`{"mobile":"`+mobile+`","area": "`+area+`"}`))
+	if err != nil {
+		return ""
+	}
+	body, err := io.ReadAll(resp.Body)
+	if err != nil {
+		return ""
+	}
+	logger.Info("获取到的手机验证码: " + string(body))
+	return string(body)
+}
+
+func GetMobileCaptchaForJiangSu(mobile string) (string, error) {
+	c := lxhttp.NewHttpClient()
+	req, err := http.NewRequest("POST", "https://public.listensoft.net/api/getTaxSms", strings.NewReader(`{"mobile":"`+mobile+`"}`))
+	if err != nil {
+		logger.Info(err)
+		return "", err
+	}
+	req.Header.Set("Content-Type", "application/json")
+	resp, err := c.Do(req)
+	if err != nil {
+		logger.Info(err)
+		return "", err
+	}
+	body, err := io.ReadAll(resp.Body)
+	if err != nil {
+		return "", err
+	}
+	logger.Info("获取到的手机验证码: " + string(body))
+	return string(body), nil
+}
+
+// func GetMobileCaptchaForSiChuan(mobile, remark string) string {
+// 	resp, err := http.Post("https://public.listensoft.net/api/getTaxSms", "application/json",
+// 		strings.NewReader(`{"mobile":"`+mobile+`","remark":"`+remark+`"}`))
+// 	if err != nil {
+// 		return ""
+// 	}
+// 	body, err := io.ReadAll(resp.Body)
+// 	if err != nil {
+// 		return ""
+// 	}
+// 	return string(body)
+// }