first commit
This commit is contained in:
129
pkg/partner/ali_auth/auth_client_do.go
Normal file
129
pkg/partner/ali_auth/auth_client_do.go
Normal file
@ -0,0 +1,129 @@
|
||||
package ali_auth
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
|
||||
"github.com/spf13/viper"
|
||||
|
||||
cloudauth "github.com/alibabacloud-go/cloudauth-20190307/v3/client"
|
||||
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
)
|
||||
|
||||
func CreateClient(endpoint *string) (_result *cloudauth.Client, _err error) {
|
||||
// 初始化Client。
|
||||
config := &openapi.Config{
|
||||
// 使用Credential配置凭证。
|
||||
AccessKeyId: tea.String(viper.GetString("aliyun.sms.accessKeyId")),
|
||||
AccessKeySecret: tea.String(viper.GetString("aliyun.sms.accessKeySecret")),
|
||||
ConnectTimeout: tea.Int(3000),
|
||||
ReadTimeout: tea.Int(6000),
|
||||
// RegionId: tea.String("cn-shanghai"),
|
||||
Endpoint: endpoint,
|
||||
}
|
||||
//_result = &cloudauth.Client{}
|
||||
_result, _err = cloudauth.NewClient(config)
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func getReturnUrl() string {
|
||||
return viper.GetString("aliyun.face-verify.returnUrl")
|
||||
}
|
||||
|
||||
func AliFaceVerify(token, userId, orderNo, metaInfo string) (res *cloudauth.InitFaceVerifyResponse, _err error) {
|
||||
request := &cloudauth.InitFaceVerifyRequest{
|
||||
SceneId: tea.Int64(1000014704),
|
||||
OuterOrderNo: tea.String(orderNo),
|
||||
ProductCode: tea.String("LR_FR"),
|
||||
Model: tea.String("LIVENESS"),
|
||||
// CertifyUrlType: tea.String("H5"),
|
||||
CertifyUrlStyle: tea.String("S"),
|
||||
CallbackToken: tea.String(orderNo),
|
||||
// LIVENESS(默认):眨眼 PHOTINUS_LIVENESS:眨眼 + 炫彩 MULTI_ACTION:眨眼 + 摇头 (眨眼和摇头顺序随机) MULTI_PHOTINUS:眨眼 + 摇头 (眨眼和摇头顺序随机)+ 炫彩活体检测。 MOVE_ACTION(推荐):远近移动 + 眨眼 (远近和眨眼顺序随机) MULTI_FAPTCHA:眨眼 + 形迹
|
||||
UserId: tea.String(userId),
|
||||
MetaInfo: tea.String(metaInfo),
|
||||
ReturnUrl: tea.String(fmt.Sprintf(getReturnUrl(), token, orderNo)),
|
||||
}
|
||||
client, _err := CreateClient(tea.String("cloudauth.aliyuncs.com"))
|
||||
if _err != nil {
|
||||
return nil, _err
|
||||
}
|
||||
response, _err := client.InitFaceVerify(request)
|
||||
// 不支持服务自动路由。
|
||||
// response, _err := InitFaceVerify(tea.String("cloudauth.cn-shanghai.aliyuncs.com"), request)
|
||||
if _err != nil {
|
||||
return nil, _err
|
||||
}
|
||||
// fmt.Println(*response.Body.RequestId)
|
||||
// fmt.Println(*response.Body.Code)
|
||||
// fmt.Println(*response.Body.Message)
|
||||
// fmt.Println(*response.Body.RequestId)
|
||||
// fmt.Println(*response.Body.ResultObject.CertifyId)
|
||||
// fmt.Println(*response.Body.ResultObject.CertifyUrl)
|
||||
return response, _err
|
||||
}
|
||||
|
||||
func AliFaceVerifyQuery(certifyId string) (res *cloudauth.DescribeFaceVerifyResponse, _err error) {
|
||||
client, _err := CreateClient(tea.String("cloudauth.aliyuncs.com"))
|
||||
if _err != nil {
|
||||
return nil, _err
|
||||
}
|
||||
return client.DescribeFaceVerify(&cloudauth.DescribeFaceVerifyRequest{
|
||||
SceneId: tea.Int64(1000014704),
|
||||
CertifyId: tea.String(certifyId),
|
||||
})
|
||||
}
|
||||
|
||||
func InitFaceVerifyAutoRoute(request *cloudauth.InitFaceVerifyRequest) (_result *cloudauth.InitFaceVerifyResponse, _err error) {
|
||||
endpoints := []*string{tea.String("cloudauth.aliyuncs.com"), tea.String("cloudauth-dualstack.aliyuncs.com")}
|
||||
var lastResponse *cloudauth.InitFaceVerifyResponse
|
||||
for _, endpoint := range endpoints {
|
||||
response, _err := InitFaceVerify(endpoint, request)
|
||||
lastResponse = response
|
||||
if _err != nil {
|
||||
var err = &tea.SDKError{}
|
||||
if _t, ok := _err.(*tea.SDKError); ok {
|
||||
err = _t
|
||||
// 系统异常,切换到下个地域调用。
|
||||
if *err.StatusCode == 500 {
|
||||
continue
|
||||
}
|
||||
}
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
if *response.StatusCode == 500 {
|
||||
continue
|
||||
}
|
||||
|
||||
if *response.Body.Code == "500" {
|
||||
continue
|
||||
}
|
||||
|
||||
_result = response
|
||||
return _result, _err
|
||||
|
||||
}
|
||||
_result = lastResponse
|
||||
return _result, _err
|
||||
}
|
||||
|
||||
func InitFaceVerify(endpoint *string, request *cloudauth.InitFaceVerifyRequest) (_result *cloudauth.InitFaceVerifyResponse, _err error) {
|
||||
client, _err := CreateClient(endpoint)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
// 创建RuntimeObject实例并设置运行参数。
|
||||
runtime := &util.RuntimeOptions{}
|
||||
runtime.ReadTimeout = tea.Int(10000)
|
||||
runtime.ConnectTimeout = tea.Int(10000)
|
||||
_result = &cloudauth.InitFaceVerifyResponse{}
|
||||
_body, _err := client.InitFaceVerifyWithOptions(request, runtime)
|
||||
if _err != nil {
|
||||
return _result, _err
|
||||
}
|
||||
_result = _body
|
||||
return _result, _err
|
||||
}
|
||||
Reference in New Issue
Block a user