feat(merchant): 新增微信实名认证结果查询功能

- 在 consts/url.go 中新增微信实名认证结果查询接口地址常量
- 在 lklsdk/merchant.go 中实现 WechatRealNameQuery 方法,用于发送实名认证查询请求
- 在 lklsdk/sdk.go 中暴露 WechatRealNameQuery 接口方法,方便外部调用
- 新增 model/wechatRealNameQuery.go 文件,定义微信实名认证查询相关的请求与响应结构体
- 实现 SuccessOrFail 方法判断微信实名认证查询是否成功
main v1.0.31
gaoda 2025-12-12 15:51:30 +08:00
parent 0b902def62
commit deb2985747
4 changed files with 75 additions and 0 deletions

View File

@ -58,6 +58,8 @@ const (
LKL_EC_APPLY_MANUAL = "/v3/mms/open_api/ec/apply_manual"
// LKL_EC_QMA_STATUS 拉卡拉商户电子合同人工复核结果查询
LKL_EC_QMA_STATUS = "/v3/mms/open_api/ec/qma_status"
// LKL_WECHAT_REAL_NAME_QUERY 拉卡拉微信实名认证结果查询
LKL_WECHAT_REAL_NAME_QUERY = "/v2/mms/openApi/wechatRealNameQuery"
)
// unifiedReturn 统一退货API地址

View File

@ -205,3 +205,26 @@ func (t *MerService[T]) ReconsiderSubmitTest(req *model.ReConfSubmitRequestData)
}
return respBody, nil
}
func (t *MerService[T]) WechatRealNameQuery(req *model.WechatRealNameQueryReqData) (*T, error) {
// 构建请求参数
url := consts.BASE_URL + consts.LKL_WECHAT_REAL_NAME_QUERY
md5, err := gmd5.Encrypt(gconv.String(time.Now().Unix()))
if err != nil {
return nil, fmt.Errorf("创建ReqId失败")
}
// 构建BaseModel请求
baseReq := model.WechatRealNameQueryRequest{
ReqData: req,
ReqId: md5,
Timestamp: time.Now().Unix(),
Ver: "1.0",
}
// 发送请求
respBody, err := t.client.DoRequest(url, baseReq)
if err != nil {
return nil, err
}
return respBody, nil
}

View File

@ -247,3 +247,7 @@ func (s *SDK[T]) ECQmaStatus(req *ecQmaStatus.ECQmaStatusRequestData) (*ecQmaSta
func (s *SDK[T]) ECQmaStatusTest(req *ecQmaStatus.ECQmaStatusRequestData) (*ecQmaStatus.ECQmaStatusResponse, error) {
return s.ECPeQmaStatus.ECQmaStatusTest(req)
}
func (s *SDK[T]) WechatRealNameQuery(req *model.WechatRealNameQueryReqData) (*T, error) {
return s.Merchant.WechatRealNameQuery(req)
}

View File

@ -0,0 +1,46 @@
package model
type WechatRealNameQueryRequest struct {
// 请求业务数据
ReqData *WechatRealNameQueryReqData `json:"reqData"`
// 接口版本号
Ver string `json:"ver"`
// 请求时间格式为yyyyMMddHHmmss
Timestamp int64 `json:"timestamp"`
ReqId string `json:"reqId"`
}
type WechatRealNameQueryReqData struct {
Version string `json:"version" dc:"接口版本号"`
OrderNo string `json:"orderNo" dc:"订单编号 14位年月日时24小时制分秒+8位的随机数不重复2021020112000012345678"`
OrgCode string `json:"orgCode" dc:"机构代码"`
MerInnerNo string `json:"merInnerNo" dc:"拉卡拉内部商户号"`
SubMchId string `json:"subMchId" dc:"子商户号"`
ChannelId string `json:"channelId" dc:"渠道号 (建议传入,能具体定位用的渠道,仅支持拉卡拉渠道查询)"`
}
type WechatRealNameQueryResponse struct {
// 响应状态码000000表示成功
RetCode string `json:"retCode"`
// 响应消息
RetMsg string `json:"retMsg"`
// 响应业务数据当code为000000时返回
RespData *WechatRealNameQueryRespData `json:"respData"`
}
type WechatRealNameQueryRespData struct {
MerInnerNo string `json:"merInnerNo" dc:"拉卡拉内部商户号"`
SubMchId string `json:"subMchId" dc:"账户端子商户号 "`
ChannelId string `json:"channelId" dc:"渠道号"`
ReceOrgNo string `json:"receOrgNo" dc:"从业机构号"`
ApplymentId string `json:"applymentId" dc:"申请编号"`
ApplymentState string `json:"applymentState" dc:"申请状态"`
AuthorizeState string `json:"authorizeState" dc:"认证状态"`
QrcodeData string `json:"qrcodeData" dc:" 小程序码图片"`
RejectParameter string `json:"rejectParameter" dc:"驳回参数"`
RejectReason string `json:"rejectReason" dc:"驳回原因"`
}
func (resp *WechatRealNameQueryResponse) SuccessOrFail() bool {
return resp.RetCode == "000000"
}