125 lines
4.0 KiB
Go
125 lines
4.0 KiB
Go
|
|
// 单独调用法大大 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)
|
|||
|
|
}
|