鄭舜尹 管理员
我很含蓄, 什么也没有留下!

客户订阅云商品时,触发后端服务进行初始资料设置

智驱平台2025-4-28 17:38 阅读 28 评论 0

场景:当应用有新客户时,需要为新客户导入一些初始数据或初始配置
希望能实现新客户加入时自动执行,而不需要人工手动设置。

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

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


接着点击"设置"


点击"新增回调类型",如下图,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.digiwincloud.com.cn/restful/standard/pdemo/api/app/initialize


后端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. }


路过

雷人

握手

鲜花

评论

您需要登录后才可以发表言论 登录立即注册
facelist
  • 42帖子
  • 0关注
  • 1粉丝

粉丝1

  • 关注公众号
Copyright © 2025 鼎捷数智股份有限公司 版权所有 All Rights Reserved. Powered by Discuz! X5.0
关灯
即将开放
返回顶部
返回顶部