This commit is contained in:
邹宗楠
2025-07-15 18:15:51 +08:00
parent e2cdea1905
commit 121b48994c
5 changed files with 135 additions and 9 deletions

View File

@@ -86,7 +86,7 @@ func TestSkuListDelete(t *testing.T) {
Page: page,
PageSize: 100,
}
foodList, err := api.SkuList(utils.Int2Str(102778), param)
foodList, err := api.SkuList(utils.Int2Str(667247), param)
if err != nil {
break
}
@@ -94,7 +94,7 @@ func TestSkuListDelete(t *testing.T) {
for k, v := range foodList.List {
if v.CustomSkuID == "" {
api.AccessAPI2("sku.delete", map[string]interface{}{
"shop_id": "102778",
"shop_id": "667247",
"sku_id": v.SkuId,
}, utils.GetUUID())
globals.SugarLogger.Debugf("---k := %d,delete_name:= %s", k, v.Name)
@@ -328,7 +328,7 @@ func TestDeleteStoreSku(t *testing.T) {
}
func TestDeleteSku(t *testing.T) {
shopId := "804627"
shopId := "667247"
param1 := &SkuListParams{
Page: 1,
PageSize: 100,

View File

@@ -1,5 +1,21 @@
package lakala
// ApplyContractCallBack 合同生气回调
type ApplyContractCallBack struct {
Code string `json:"code"`
Msg string `json:"msg"`
RespData struct {
Version string `json:"version"`
OrderNo string `json:"order_no"`
OrgId int `json:"org_id"`
EcApplyId int64 `json:"ec_apply_id"`
AuditStatus string `json:"audit_status"`
AuditDesc string `json:"audit_desc"`
SignH5Url string `json:"sign_h5_url"`
SignH5UrlExpTm string `json:"sign_h5_url_exp_tm"`
} `json:"resp_data"`
}
// SeparateCallback 商户分账创建/修改回调
type SeparateCallback struct {
ApplyId string `json:"applyId"`

View File

@@ -148,5 +148,78 @@ func (a *API) RefundOrderQuery(param *RefundOrderQueryReq) ([]*RefundOrderQueryR
}
return resp, nil
}
// ApplyElectronicContract 电子合同签约
func (a *API) ApplyElectronicContract(param *ApplyContractParam) (*ApplyContractResp, error) {
reqParameter := map[string]interface{}{
"req_data": utils.Struct2Map(param, "", false),
"version": Version3,
"req_time": utils.Time2TimeStrByFormat(time.Now(), TimeFormat),
}
result, err := a.AccessAPISign(OrderProdUrl, OrderEcApplyActive, http.MethodPost, "", reqParameter)
if err != nil {
return nil, err
}
if result["code"].(string) != Success {
return nil, fmt.Errorf(result["msg"].(string))
}
bodyResult, err := json.Marshal(result["resp_data"].(map[string]interface{}))
if err != nil {
return nil, err
}
resp := &ApplyContractResp{}
if err = json.Unmarshal(bodyResult, resp); err != nil {
return nil, err
}
return resp, nil
}
// QueryElectronicContract 电子合同签约审核结果查询
func (a *API) QueryElectronicContract(orderNo string, orgId int, ecApplyId string) (*ElectronicContractStatus, error) {
reqParameter := map[string]interface{}{
"req_data": map[string]interface{}{
"version": "1.0",
"order_no": orderNo,
"org_id": orgId,
"ec_apply_id": ecApplyId,
},
"version": Version,
"req_time": utils.Time2TimeStrByFormat(time.Now(), TimeFormat),
}
result, err := a.AccessAPISign(OrderProdUrl, OrderEcApplyStatusActive, http.MethodPost, "", reqParameter)
if err != nil {
return nil, err
}
if result["code"].(string) != Success {
return nil, fmt.Errorf(result["msg"].(string))
}
bodyResult, err := json.Marshal(result["resp_data"].(map[string]interface{}))
if err != nil {
return nil, err
}
resp := &ElectronicContractStatus{}
if err = json.Unmarshal(bodyResult, resp); err != nil {
return nil, err
}
return resp, nil
}
type ElectronicContractStatus struct {
Version string `json:"version"`
OrderNo string `json:"order_no"`
OrgId int `json:"org_id"`
EcApplyId int64 `json:"ec_apply_id"` // ec_apply_id
AuditStatus string `json:"audit_status"` // 人工审核状态
AuditDesc string `json:"audit_desc"` // 人工审核结果说明
SignH5Url string `json:"sign_h5_url"` // 签约H5地址
SignH5UrlExpTm string `json:"sign_h5_url_exp_tm"` // 签约H5地址过期时间
}

View File

@@ -4,11 +4,13 @@ const (
OrderTestUrl = "https://test.wsmsd.cn/sit/api/v3/" // 收银订单创建测试地址
OrderProdUrl = "https://s2.lakala.com/api/v3" // 收银订单创建正式地址
CrateOrderActive = "ccss/counter/order/special_create" // 创建订单
CloseOrderActive = "ccss/counter/order/close" // 订单关单
QueryOrderActive = "ccss/counter/order/query" // 订单查询
OrderRefundActive = "lams/trade/trade_refund" // 订单统一退货
OrderRefundQueryActive = "lams/trade/trade_refund_query" // 订单统一退货查询
CrateOrderActive = "ccss/counter/order/special_create" // 创建订单
CloseOrderActive = "ccss/counter/order/close" // 订单关单
QueryOrderActive = "ccss/counter/order/query" // 订单查询
OrderRefundActive = "lams/trade/trade_refund" // 订单统一退货
OrderRefundQueryActive = "lams/trade/trade_refund_query" // 订单统一退货查询
OrderEcApplyActive = "mms/open_api/ec/apply" // 电子合同申请
OrderEcApplyStatusActive = "mms/open_api/ec/qma_status" // 电子合同状态查询
)
const (
@@ -221,3 +223,36 @@ type RefundOrderQueryResp struct {
AccMdiscountAmount string `json:"acc_mdiscount_amount"` // 商户侧优惠金额(账户端)
AccDiscountAmount string `json:"acc_discount_amount"` // 账户端优惠金额
}
// ApplyContractParam 合同申请参数
type ApplyContractParam struct {
OrderNo string `json:"order_no"` // 四方机构自定义订单编号 M String(32) 建议:平台编号+14位年月日时24小时制分秒+8位的随机数同一接入机构不重复
OrgId int `json:"org_id"` // 机构号 M Integer 签约方所属拉卡拉机构
EcTypeCode string `json:"ec_type_code"` // 合同类别 M String(12) EC001 : 特约商户支付服务合作协议V3.1(商户入网) PASSPORT护照HK_MACAO_PASS港澳居民往来内地通行证TAIWAN_PASS台湾居民来往大陆通行证
CertName string `json:"cert_name"` // 法人/经营者姓名 M String(32)
CertNo string `json:"cert_no"` // 法人/经营者证件号码 M String(32)
Mobile string `json:"mobile"` // 签约手机号 M String(16) 1.小微个人商户无营业执照签约手机号必须填写商户经营者本人手机号2.个体工商户或企业商户(有营业执照),签约手机号必须填写法人手机号或者经办人手机号 合同签署人手机号,请慎重填写,不可修改
BusinessLicenseMo string `json:"business_license_no"` // 营业执照号 C String(32) 个体工商户或企业商户 必传
BusinessLicenseMame string `json:"business_license_name"` // 营业执照名称 C String(32) 个体工商户或企业商户 必传
OpenningBankCode string `json:"openning_bank_code"` // 企业/经营者结算开户行号 M String(32)
OpenningBankName string `json:"openning_bank_name"` // 企业/经营者结算开户行名称 M String(128)
AcctTypeCode string `json:"acct_type_code"` // 企业/经营者结算卡性质 M String(2) 57 对公、 58 对私
AcctNo string `json:"acct_no"` // 企业/经营者结算卡号 M String(32)
AcctName string `json:"acct_name"` // 企业/经营者结算卡名称 M String(64) 企业/经营者结算卡名称
EcContentParameters string `json:"ec_content_parameters"` // 电子合同内容参数集合 M JSONString 按合同类型ecTypeCode传递不同的参数集合
AgentTag int `json:"agent_tag"` // 是否经办签约 C Integer(1) 0 不启用 1启用 缺省 0
AgentName string `json:"agent_name"` // 经办人名称 C String(32) 经办人名称要与证件号对应agentTag 为1时 必传
AgentCertType string `json:"agent_cert_type"` // 经办人证件类型 C String(32) RESIDENT_ID身份证PASSPORT护照HK_MACAO_PASS港澳居民往来内地通行证TAIWAN_PASS台湾居民来往大陆通行证
AgentCertNo string `json:"agent_cert_no"` // 经办人证件号 C String(32) agentTag 为1时 必传
AgentFileName string `json:"agent_file_name"` // 经办签约授权委托书文件名 C String(32) agentTag 为1时 必传
AgentFilePath string `json:"agent_file_path"` // 经办授权委托书文件路径 C String(128) agentTag 为1时 必传
Remark string `json:"remark"` // 备注说明 C String(128) 备注说明
RetUrl string `json:"ret_url"` // 电子合同签约结果回调通知 C String(128) 成功签约才通知
}
// ApplyContractResp 签约响应参数
type ApplyContractResp struct {
OrderNo string `json:"order_no"`
EcApplyId int64 `json:"ec_apply_id"`
ResultUrl string `json:"result_url"`
}

View File

@@ -91,6 +91,7 @@ const (
//BillProdCallbackUrl = "http://callback.jxc4.com/lakalaCallback/ewalletWithdrawD1" // 账户D1提现回调
//OrderStatusCallback = "http://callback.jxc4.com/lakalaCallback/orderStatus" // 收银台订单通知(订单状态)
//PayStatusCallback = "http://callback.jxc4.com/lakalaCallback/payStatus" // 主扫支付状态通知
//ApplyContractCallback = "http://callback.jxc4.com/lakalaCallback/applyContract" // 合同申请回到
CallbackLaKaLaShopUrl = "http://callback.test.jxc4.com/lakalaCallback/separateMsg" // 消息通知地址(商户开通)
CallbackLaKaLaSeparateBindUrl = "http://callback.test.jxc4.com/lakalaCallback/separateBind" // 消息通知地址(分账关系绑定回调,解绑回调)
@@ -98,4 +99,5 @@ const (
BillProdCallbackUrl = "http://callback.test.jxc4.com/lakalaCallback/ewalletWithdrawD1" // 账户D1提现回调
OrderStatusCallback = "http://callback.test.jxc4.com/lakalaCallback/orderStatus" // 收银台订单通知(订单状态)
PayStatusCallback = "http://callback.test.jxc4.com/lakalaCallback/payStatus" // 主扫支付状态通知
ApplyContractCallback = "http://callback.test.jxc4.com/lakalaCallback/applyContract" // 合同申请回到
)