This commit is contained in:
邹宗楠
2025-07-29 17:17:42 +08:00
parent bd766171cc
commit 7880d87b51
3 changed files with 82 additions and 1 deletions

View File

@@ -581,3 +581,65 @@ func (a *API) AccountStatusQuery(tradeMode, subMerchantId, merchantNo string) (m
return result["respData"].(map[string]interface{}), nil
}
// SubMerchantInfoQuery 报备查询
// https://o.lakala.com/#/home/document/detail?id=326
func (a *API) SubMerchantInfoQuery(param *SubMerchantInfoQueryReq) ([]*SubMerchantInfoQueryResp, error) {
reqParameter := map[string]interface{}{
"reqData": utils.Struct2Map(param, "", false),
}
result, err := a.AccessAPISign(SeparateAccountProdUrl, SubMerchantQuery, http.MethodPost, "", reqParameter)
if err != nil {
return nil, err
}
if result["retCode"].(string) != Success {
return nil, errors.New(result["retMsg"].(string))
}
if result["respData"] != nil && result["respData"].(map[string]interface{}) != nil {
list := make([]*SubMerchantInfoQueryResp, 0, 0)
data, err := json.Marshal(result["respData"].(map[string]interface{})["list"])
if err != nil {
return nil, err
}
if err = json.Unmarshal(data, &list); err != nil {
return nil, err
}
return list, nil
}
return nil, errors.New("返回值为空")
}
// SubMerchantInfoQueryReq 报备查询
type SubMerchantInfoQueryReq struct {
Version string `json:"version"` // 必传 String 8 接口版本号 1.0
OrderNo string `json:"orderNo"` // 必传 String 32 订单编号,保证唯一(便于后续跟踪排查问题及核对报文) 14位年月日时24小时制分秒+8位的随机数不重复2021020112000012345678
OrgCode string `json:"orgCode"` // 必传 String 32 机构代码 (合作方在拉卡拉的标识,请联系业务员) 1
MerInnerNo string `json:"merInnerNo"` // 可传 String 32 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 5002022050550024285
MerCupNo string `json:"merCupNo"` // 可传 String 32 拉卡拉内部商户号和银联商户号必须传一个,都送以内部商户号为准。 8222900581207ET
RegisterChannel string `json:"registerChannel"` // 可选 String 8 报备渠道 UNIONPAY
RegisterType string `json:"registerType"` // 可选 String 64 报备类型 WXZF
RegisterStatus string `json:"registerStatus"` // 可选 String 64 报备状态 SUCCESS成功FAIL失败 SUCCESS
SubMchId string `json:"subMchId"` // 可选 String 64 子商户号
}
// SubMerchantInfoQueryResp 报备查询返回值
type SubMerchantInfoQueryResp struct {
MerInnerNo string `json:"merInnerNo"` // 内部商户号
SubMchId string `json:"subMchId"` // 子商户号
SubMchIdBank string `json:"subMchIdBank"` // 交易子商户号
DcWalletId string `json:"dcWalletId"` // 数币钱包ID
RegisterType string `json:"registerType"` // 报备类型
RegisterTypeText string `json:"registerTypeText"`
RegisterChannel string `json:"registerChannel"` // 报备渠道
RegisterChannelText string `json:"registerChannelText"`
ChannelId string `json:"channelId"` // 渠道号
ReceOrgNo string `json:"receOrgNo"` // 从业机构号
RegisterTm string `json:"registerTm"` // 报备时间
RegisterStatus string `json:"registerStatus"` // 报备状态
ResultCode string `json:"resultCode"` // 结果返回码
ResultMessage string `json:"resultMessage"` // 结果描述
}

View File

@@ -39,7 +39,7 @@ const (
AlibabaQueryAuthentication = "alipayRealNameQuery" // 阿里修改实名认证
WeChatAccountStatusQuery = "alipayRealNameQuery" // 微信开户状态差取暖
AlibabaAccountStatusQuery = "alipayRealNameQuery" // 阿里开户状态查询
SubMerchantQuery = "querySubMerInfo" // 报备查询
)
// 分账

View File

@@ -1,6 +1,8 @@
package lakala
import (
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals"
"testing"
)
@@ -41,3 +43,20 @@ func TestGetSeparate(t *testing.T) {
func TestQuerySeparateRecipient(t *testing.T) {
api.QuerySeparateRecipient("SR20240010115366", "SR2024000115366")
}
func TestSubMerchantInfoQuery(t *testing.T) {
param := &SubMerchantInfoQueryReq{
Version: "1.0",
OrderNo: "SR2024001011536611",
OrgCode: OrgCode,
MerInnerNo: "",
MerCupNo: "822651059990E2S",
RegisterChannel: "",
RegisterType: "",
RegisterStatus: "",
SubMchId: "",
}
data, err := api.SubMerchantInfoQuery(param)
globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false))
globals.SugarLogger.Debugf("data := %v", err)
}