删除不再使用的文件,包括开放 API 鉴权规范文档、数据库迁移脚本和旧版图标组件,优化项目结构和资源管理。更新小程序代码以支持代付功能,增加代付分享弹窗和支付逻辑,提升用户体验。

This commit is contained in:
Alex-larget
2026-03-18 20:33:50 +08:00
parent 0f3933fabd
commit d6cdd6fdba
57 changed files with 1672 additions and 2761 deletions

View File

@@ -72,7 +72,7 @@ func ckbOpenGetToken() (string, error) {
if msg == "" {
msg = "存客宝鉴权失败"
}
return "", fmt.Errorf(msg)
return "", fmt.Errorf("%s", msg)
}
return authResult.Data.Token, nil
}
@@ -114,7 +114,7 @@ func ckbOpenCreatePlan(token string, payload map[string]interface{}) (planID int
if result.Message == "" {
result.Message = "创建计划失败"
}
return 0, nil, ckbResponse, fmt.Errorf(result.Message)
return 0, nil, ckbResponse, fmt.Errorf("%s", result.Message)
}
// 原始 data 转为 map 供响应展示
createData = make(map[string]interface{})
@@ -127,6 +127,49 @@ func ckbOpenCreatePlan(token string, payload map[string]interface{}) (planID int
return 0, createData, ckbResponse, fmt.Errorf("创建计划返回结果中缺少 planId")
}
// ckbOpenUpdatePlan 调用 PUT /v1/plan/update 更新获客计划(用于停用/启用)
// payload 至少包含 planId
func ckbOpenUpdatePlan(token string, payload map[string]interface{}) (ckbResponse map[string]interface{}, err error) {
raw, _ := json.Marshal(payload)
req, err := http.NewRequest(http.MethodPut, ckbOpenBaseURL+"/v1/plan/update", bytes.NewReader(raw))
if err != nil {
return nil, fmt.Errorf("构造更新计划请求失败: %w", err)
}
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, fmt.Errorf("请求存客宝更新计划失败: %w", err)
}
defer resp.Body.Close()
b, _ := io.ReadAll(resp.Body)
var result struct {
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data"`
}
_ = json.Unmarshal(b, &result)
ckbResponse = map[string]interface{}{
"code": result.Code,
"message": result.Message,
"data": nil,
}
if len(result.Data) > 0 {
var dataObj interface{}
_ = json.Unmarshal(result.Data, &dataObj)
ckbResponse["data"] = dataObj
}
if result.Code != 200 {
msg := result.Message
if msg == "" {
msg = "更新计划失败"
}
return ckbResponse, fmt.Errorf("%s", msg)
}
return ckbResponse, nil
}
// parseApiKeyFromCreateData 从 create 返回的 data 中解析 apiKey若存客宝直接返回则复用避免二次请求
func parseApiKeyFromCreateData(data map[string]interface{}) string {
for _, key := range []string{"apiKey", "api_key"} {
@@ -200,7 +243,7 @@ func ckbOpenGetPlanDetail(token string, planID int64) (string, error) {
if result.Message == "" {
result.Message = "获取计划详情失败"
}
return "", fmt.Errorf(result.Message)
return "", fmt.Errorf("%s", result.Message)
}
if result.Data.APIKey == "" {
return "", fmt.Errorf("计划详情中缺少 apiKey")
@@ -341,7 +384,7 @@ func ckbOpenDeletePlan(token string, planID int64) error {
if result.Message == "" {
result.Message = "删除计划失败"
}
return fmt.Errorf(result.Message)
return fmt.Errorf("%s", result.Message)
}
return nil
}