|
|
@@ -82,12 +82,18 @@ func (c *Client) UserSignSilentURL(openUserID string, applyCompany ApplyCompanyP
|
|
|
AuthorizedMode: []string{"FACEAUTH", "PINAUTH"},
|
|
|
CompleteToPage: completeToPage,
|
|
|
}
|
|
|
- if applyCompany.OpenCompanyID != "" || applyCompany.Name != "" || applyCompany.RegisterNo != "" {
|
|
|
- req.ApplyCompany = &common.PersonalApplyCompany{
|
|
|
+ if applyCompany.CompanyID != "" || applyCompany.OpenCompanyID != "" || applyCompany.Name != "" || applyCompany.RegisterNo != "" {
|
|
|
+ pac := &common.PersonalApplyCompany{
|
|
|
Name: applyCompany.Name,
|
|
|
RegisterNo: applyCompany.RegisterNo,
|
|
|
OpenCompanyId: applyCompany.OpenCompanyID,
|
|
|
}
|
|
|
+ if applyCompany.CompanyID != "" {
|
|
|
+ if id, err := strconv.ParseInt(applyCompany.CompanyID, 10, 64); err == nil {
|
|
|
+ pac.Id = &id
|
|
|
+ }
|
|
|
+ }
|
|
|
+ req.ApplyCompany = pac
|
|
|
}
|
|
|
var resp struct {
|
|
|
apiResponse
|
|
|
@@ -132,26 +138,41 @@ func authRecordFromResponse(item v2auth_response.V2AuthSignsilentRecordResponse)
|
|
|
AuthScope: item.AuthScope,
|
|
|
}
|
|
|
if item.ApplyCompany != nil {
|
|
|
+ rec.ApplyCompanyID = item.ApplyCompany.Id
|
|
|
rec.ApplyCompanyOpenCompanyID = item.ApplyCompany.OpenCompanyId
|
|
|
rec.ApplyCompanyName = item.ApplyCompany.Name
|
|
|
+ rec.ApplyCompanyRegisterNo = item.ApplyCompany.RegisterNo
|
|
|
}
|
|
|
return rec
|
|
|
}
|
|
|
|
|
|
-// PersonalSignAuthRecordForCompany 查询指定 openUserId 对某法人单位的静默授权记录。
|
|
|
-func (c *Client) PersonalSignAuthRecordForCompany(openUserID, openCompanyID, status string) (*AuthRecord, bool, error) {
|
|
|
+// PersonalSignAuthRecordForCompany 查询 openUserId 对指定法人单位的静默授权记录。
|
|
|
+func (c *Client) PersonalSignAuthRecordForCompany(openUserID string, company ApplyCompanyParams, status string) (*AuthRecord, bool, error) {
|
|
|
records, err := c.QueryPersonalSignAuthRecords(openUserID, status)
|
|
|
if err != nil {
|
|
|
return nil, false, err
|
|
|
}
|
|
|
for i := range records {
|
|
|
- if records[i].ApplyCompanyOpenCompanyID == openCompanyID {
|
|
|
+ if authRecordMatchesCompany(&records[i], company) {
|
|
|
return &records[i], true, nil
|
|
|
}
|
|
|
}
|
|
|
return nil, false, nil
|
|
|
}
|
|
|
|
|
|
+func authRecordMatchesCompany(rec *AuthRecord, company ApplyCompanyParams) bool {
|
|
|
+ if company.CompanyID != "" && rec.ApplyCompanyID != "" && company.CompanyID == rec.ApplyCompanyID {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ if company.OpenCompanyID != "" && rec.ApplyCompanyOpenCompanyID != "" && company.OpenCompanyID == rec.ApplyCompanyOpenCompanyID {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ if company.RegisterNo != "" && rec.ApplyCompanyRegisterNo != "" && company.RegisterNo == rec.ApplyCompanyRegisterNo {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
+}
|
|
|
+
|
|
|
// IsUserSignAuthorized 是否存在任意有效个人静默授权。
|
|
|
func (c *Client) IsUserSignAuthorized(openUserID string) (bool, error) {
|
|
|
records, err := c.QueryPersonalSignAuthRecords(openUserID, "EFFECT")
|
|
|
@@ -162,8 +183,8 @@ func (c *Client) IsUserSignAuthorized(openUserID string) (bool, error) {
|
|
|
}
|
|
|
|
|
|
// IsUserSignAuthorizedForCompany 是否已对指定法人单位完成有效个人静默授权。
|
|
|
-func (c *Client) IsUserSignAuthorizedForCompany(openUserID, openCompanyID string) (bool, error) {
|
|
|
- _, found, err := c.PersonalSignAuthRecordForCompany(openUserID, openCompanyID, "EFFECT")
|
|
|
+func (c *Client) IsUserSignAuthorizedForCompany(openUserID string, company ApplyCompanyParams) (bool, error) {
|
|
|
+ _, found, err := c.PersonalSignAuthRecordForCompany(openUserID, company, "EFFECT")
|
|
|
return found, err
|
|
|
}
|
|
|
|