github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/shakearound/account/account.go (about)

     1  package account
     2  
     3  import (
     4  	"github.com/chanxuehong/wechat/mp/core"
     5  )
     6  
     7  type RegisterParameters struct {
     8  	Name                  string   `json:"name"`                    // 必须, 联系人姓名
     9  	PhoneNumber           string   `json:"phone_number"`            // 必须, 联系人电话
    10  	Email                 string   `json:"email"`                   // 必须, 联系人邮箱
    11  	IndustryId            string   `json:"industry_id"`             // 必须, 平台定义的行业代号,具体请查看链接行业代号
    12  	QualificationCertURLs []string `json:"qualification_cert_urls"` // 必须, 相关资质文件的图片url,图片需先上传至微信侧服务器,用“素材管理-上传图片素材”接口上传图片,返回的图片URL再配置在此处;当不需要资质文件时,数组内可以不填写url
    13  	ApplyReason           string   `json:"apply_reason,omitempty"`  // 可选, 申请理由
    14  }
    15  
    16  // 申请开通功能
    17  func Register(clt *core.Client, para *RegisterParameters) (err error) {
    18  	var result core.Error
    19  
    20  	incompleteURL := "https://api.weixin.qq.com/shakearound/account/register?access_token="
    21  	if err = clt.PostJSON(incompleteURL, para, &result); err != nil {
    22  		return
    23  	}
    24  
    25  	if result.ErrCode != core.ErrCodeOK {
    26  		err = &result
    27  		return
    28  	}
    29  	return
    30  }
    31  
    32  type AuditStatus struct {
    33  	ApplyTime    int64  `json:"apply_time"`    // 提交申请的时间戳
    34  	AuditStatus  int    `json:"audit_status"`  // 审核状态。0:审核未通过、1:审核中、2:审核已通过;审核会在三个工作日内完成
    35  	AuditComment string `json:"audit_comment"` // 审核备注,包括审核不通过的原因
    36  	AuditTime    int64  `json:"audit_time"`    // 确定审核结果的时间戳;若状态为审核中,则该时间值为0
    37  }
    38  
    39  // 查询审核状态
    40  func GetAuditStatus(clt *core.Client) (status *AuditStatus, err error) {
    41  	var result struct {
    42  		core.Error
    43  		AuditStatus `json:"data"`
    44  	}
    45  
    46  	incompleteURL := "https://api.weixin.qq.com/shakearound/account/auditstatus?access_token="
    47  	if err = clt.GetJSON(incompleteURL, &result); err != nil {
    48  		return
    49  	}
    50  
    51  	if result.ErrCode != core.ErrCodeOK {
    52  		err = &result.Error
    53  		return
    54  	}
    55  	status = &result.AuditStatus
    56  	return
    57  }