f
This commit is contained in:
124
cmd/fadada_get_auth_url/main.go
Normal file
124
cmd/fadada_get_auth_url/main.go
Normal file
@@ -0,0 +1,124 @@
|
||||
// 单独调用法大大 POST /corp/get-auth-url,打印 authUrl。
|
||||
//
|
||||
// 示例:
|
||||
//
|
||||
// go run ./cmd/fadada_get_auth_url -corp-id=HY-SEAL -name=海南海宇大数据有限公司 -phone=13876051080 -free-sign
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"tyapi-server/internal/config"
|
||||
"tyapi-server/internal/shared/fadada"
|
||||
)
|
||||
|
||||
func main() {
|
||||
corpID := flag.String("corp-id", "", "clientCorpId(必填,业务侧企业唯一标识)")
|
||||
name := flag.String("name", "", "企业名称 corpName")
|
||||
uscc := flag.String("uscc", "", "统一社会信用代码")
|
||||
legal := flag.String("legal", "", "法人姓名")
|
||||
phone := flag.String("phone", "", "经办人手机号")
|
||||
user := flag.String("user", "", "经办人姓名(默认用法人)")
|
||||
idNo := flag.String("id", "", "经办人身份证号")
|
||||
freeSign := flag.Bool("free-sign", false, "是否附带免验证签场景码(读配置 no_auth_scene_code)")
|
||||
redirect := flag.String("redirect", "", "回跳地址(默认读配置 auth.redirect_url)")
|
||||
flag.Parse()
|
||||
|
||||
if strings.TrimSpace(*corpID) == "" {
|
||||
fmt.Fprintln(os.Stderr, "缺少 -corp-id(clientCorpId)")
|
||||
flag.Usage()
|
||||
os.Exit(2)
|
||||
}
|
||||
|
||||
cfg, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "加载配置失败: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
f := cfg.Fadada
|
||||
if f.AppID == "" || f.AppSecret == "" || f.ServerURL == "" {
|
||||
fmt.Fprintln(os.Stderr, "config 中 fadada.app_id / app_secret / server_url 不完整")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
authRedirect := strings.TrimSpace(*redirect)
|
||||
if authRedirect == "" {
|
||||
authRedirect = f.Auth.RedirectURL
|
||||
}
|
||||
|
||||
fdCfg, err := fadada.NewConfig(
|
||||
f.AppID, f.AppSecret, f.ServerURL, f.OpenCorpID, f.NoAuthSceneCode, f.TemplateID,
|
||||
f.PartyAActorID, f.PartyBActorID, f.TemplateDocID,
|
||||
&fadada.TemplateFields{
|
||||
AgreementNo: f.TemplateFields.AgreementNo,
|
||||
ContractDate: f.TemplateFields.ContractDate,
|
||||
PartyAName: f.TemplateFields.PartyAName,
|
||||
PartyAUSCC: f.TemplateFields.PartyAUSCC,
|
||||
PartyAAddress: f.TemplateFields.PartyAAddress,
|
||||
PartyARep: f.TemplateFields.PartyARep,
|
||||
PartyASignDate: f.TemplateFields.PartyASignDate,
|
||||
PartyBSignDate: f.TemplateFields.PartyBSignDate,
|
||||
},
|
||||
&fadada.ContractConfig{Name: f.Contract.Name, ExpireDays: f.Contract.ExpireDays, RetryCount: f.Contract.RetryCount},
|
||||
&fadada.AuthConfig{RedirectURL: authRedirect},
|
||||
&fadada.SignConfig{RedirectURL: f.Sign.RedirectURL},
|
||||
&fadada.CallbackConfig{Enabled: f.Callback.Enabled},
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "构造法大大配置失败: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
transactorName := strings.TrimSpace(*user)
|
||||
if transactorName == "" {
|
||||
transactorName = strings.TrimSpace(*legal)
|
||||
}
|
||||
if transactorName == "" {
|
||||
transactorName = "经办人"
|
||||
}
|
||||
|
||||
req := &fadada.EnterpriseAuthRequest{
|
||||
ClientCorpID: strings.TrimSpace(*corpID),
|
||||
CompanyName: strings.TrimSpace(*name),
|
||||
UnifiedSocialCode: strings.TrimSpace(*uscc),
|
||||
LegalPersonName: strings.TrimSpace(*legal),
|
||||
TransactorName: transactorName,
|
||||
TransactorMobile: strings.TrimSpace(*phone),
|
||||
TransactorID: strings.TrimSpace(*idNo),
|
||||
}
|
||||
if *freeSign {
|
||||
req.FreeSignBusinessID = strings.TrimSpace(f.NoAuthSceneCode)
|
||||
}
|
||||
|
||||
// 官方多数字段可选;本地校验要求较严时,用占位补齐以便联调拿链接
|
||||
if req.CompanyName == "" {
|
||||
req.CompanyName = "待授权企业"
|
||||
}
|
||||
if req.UnifiedSocialCode == "" {
|
||||
req.UnifiedSocialCode = req.ClientCorpID
|
||||
}
|
||||
if req.LegalPersonName == "" {
|
||||
req.LegalPersonName = transactorName
|
||||
}
|
||||
if req.TransactorMobile == "" {
|
||||
req.TransactorMobile = "13800000000"
|
||||
}
|
||||
if req.TransactorID == "" {
|
||||
req.TransactorID = "110101199001011234"
|
||||
}
|
||||
|
||||
client := fadada.NewClient(fdCfg)
|
||||
fmt.Printf("调用 get-auth-url\n server=%s\n app_id=%s\n clientCorpId=%s\n corpName=%s\n freeSign=%v businessId=%s\n\n",
|
||||
f.ServerURL, f.AppID, req.ClientCorpID, req.CompanyName, *freeSign, req.FreeSignBusinessID)
|
||||
|
||||
res, err := client.GenerateEnterpriseAuth(req)
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "调用失败: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Println("authUrl:")
|
||||
fmt.Println(res.AuthURL)
|
||||
}
|
||||
Reference in New Issue
Block a user