返回列表 发布新帖

[问题求助] 客户订阅云商品时,触发后端服务进行初始资料设置

17 0
发表于 2025-4-25 17:31:35 | 查看全部 阅读模式
场景:当应用有新客户时,需要为新客户导入一些初始数据或初始配置
希望能实现新客户加入时自动执行,而不需要人工手动设置。

平台提供此功能,且不仅在客户订阅商品时会触发,
其他如客户续约、加购、或者客户订阅到期时,都可以设置触发调用相关接口。

需要先在运营管理平台完成商品创建。
然后可以在商品维护中找到要设置的商品
首先点击详情,确认是否勾选了初始化,如果没有,请将商品下架后勾选再重新上架。
333.png

接着点击"设置"
11111.png

点击"新增回调类型",如下图,1为类型代号,可下拉选择;2为类型及触发时间说明
常用类型有:
APP_NEW 初始化,商品首次购买会通知
APP_RENEW 续约,应用过期再次购买会通知
APP_ADD_PURCHASE加购,应用每次购买都会通知
APP_EXPIRED 过期,应用过期7天内会通知

3、4、5为触发时会被调用的应用接口URL,完整URL为3+4+5
以下图为例,客户首次购买商品时,被调用的应用接口完整URL为
https://pdemo-test.apps.digiwinc ... /api/app/initialize
2222.png

后端DAP可用自定义路由实现接口,说明文档请参考
http://10.40.40.237:8080/microservice-elearning_v2/#/handbook/0401?id=_3-自定义路由规则
接口规格文档请参考
https://doc.apipost.net/docs/detail/3b0886db7c04000?target_id=3ad543e

示例代码:

GoodsMgmtService.java
  1. import com.digiwin.app.service.AllowAnonymous;
  2. import com.digiwin.app.service.DWService;
  3. import com.digiwin.app.service.DWServiceResult;
  4. import com.digiwin.app.service.restful.DWRequestMapping;
  5. import com.digiwin.app.service.restful.DWRequestMethod;
  6. import com.digiwin.app.service.restful.DWRestfulRequest;
  7. import com.digiwin.app.service.restful.DWRestfulService;

  8. @DWRestfulService
  9. public interface GoodsMgmtService extends DWService {

  10.     @AllowAnonymous
  11.     @DWRequestMapping(path = "/api/app/initialize", method = DWRequestMethod.POST)
  12.     DWServiceResult initialize(DWRestfulRequest request) throws Exception;

  13. }
复制代码
GoodsMgmtServiceImpl.java
  1. import com.digiwin.app.dao.DWServiceResultBuilder;
  2. import com.digiwin.app.json.gson.DWGsonProvider;
  3. import com.digiwin.app.service.DWServiceResult;
  4. import com.digiwin.app.service.restful.DWRestfulRequest;
  5. import com.google.gson.reflect.TypeToken;
  6. import org.springframework.stereotype.Service;

  7. import java.util.ArrayList;
  8. import java.util.Map;

  9. @Service
  10. public class GoodsMgmtServiceImpl implements GoodsMgmtService {

  11.     @Override
  12.     public DWServiceResult initialize(DWRestfulRequest request) throws Exception {
  13.         Map<String, Object> input =
  14.                 DWGsonProvider.getGson().fromJson(request.getBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType());

  15.         // 以下是从请求body获取相关信息的示例,可根据需求参考规格文档修改

  16.         System.out.println("租戶sid: " + input.get("tenantSid"));
  17.         System.out.println("租戶id: " + input.get("tenantId"));
  18.         System.out.println("租户名称: " + input.get("tenantName"));

  19.         Map<String, Object> authorizations =
  20.                 ((ArrayList<Map<String, Object>>)input.get("authorizations")).get(0);
  21.         System.out.println(authorizations.get("商品id: " + "id"));
  22.         System.out.println(authorizations.get("商品code: " + "code"));

  23.         Map<String, Object> sellingStrategy = (Map)authorizations.get("sellingStrategy");
  24.         System.out.println(sellingStrategy.get("销售方案id: " + "id"));
  25.         System.out.println(sellingStrategy.get("销售方案code: " + "code"));

  26.         // 在这里写要做的初始化操作

  27.         // 初始化完成后返回成功
  28.         return DWServiceResultBuilder.build("ok");
  29.     }
  30. }
复制代码


热门讨论
精选文章
Athena平台-任务到期催办功能(逾期提醒)
  需求背景:           对于任务卡发卡后任务在
前端定制基于postmessage通讯机制使用说明
 业务场景:       在前端定制开发场景中需要实现不同任务
DAP后端应用写法-使用DWDataSet进行数据库的新增/修改
场景使用高代码后端要去数据库变更数据, 除了直接下SQL的方式外, 更可用java物件的方
DAP后端应用写法-使用DWQueryInfo进行数据库的查询
场景使用高代码后端要去数据库查资料, 除了直接下SQL的方式外, 更可用java物件的方式,
排錯技巧 - 雅典娜签核,间歇性会报错
 问题描述顾问反馈:雅典娜签核套件点击OA送签或查看签核流程时,间歇性会报错。
  • 关注公众号
Copyright © 2026 鼎捷数智股份有限公司 版权所有 All Rights Reserved. Powered by Discuz! X5.0
关灯 在本版发帖
即将开放
返回顶部
快速回复 返回顶部 返回列表