客户订阅云商品时,触发后端服务进行初始资料设置
场景:当应用有新客户时,需要为新客户导入一些初始数据或初始配置希望能实现新客户加入时自动执行,而不需要人工手动设置。
平台提供此功能,且不仅在客户订阅商品时会触发,
其他如客户续约、加购、或者客户订阅到期时,都可以设置触发调用相关接口。
需要先在运营管理平台完成商品创建。
然后可以在商品维护中找到要设置的商品
首先点击详情,确认是否勾选了初始化,如果没有,请将商品下架后勾选再重新上架。
接着点击"设置"
点击"新增回调类型",如下图,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
import com.digiwin.app.service.AllowAnonymous;
import com.digiwin.app.service.DWService;
import com.digiwin.app.service.DWServiceResult;
import com.digiwin.app.service.restful.DWRequestMapping;
import com.digiwin.app.service.restful.DWRequestMethod;
import com.digiwin.app.service.restful.DWRestfulRequest;
import com.digiwin.app.service.restful.DWRestfulService;
@DWRestfulService
public interface GoodsMgmtService extends DWService {
@AllowAnonymous
@DWRequestMapping(path = "/api/app/initialize", method = DWRequestMethod.POST)
DWServiceResult initialize(DWRestfulRequest request) throws Exception;
}GoodsMgmtServiceImpl.java
import com.digiwin.app.dao.DWServiceResultBuilder;
import com.digiwin.app.json.gson.DWGsonProvider;
import com.digiwin.app.service.DWServiceResult;
import com.digiwin.app.service.restful.DWRestfulRequest;
import com.google.gson.reflect.TypeToken;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
@Service
public class GoodsMgmtServiceImpl implements GoodsMgmtService {
@Override
public DWServiceResult initialize(DWRestfulRequest request) throws Exception {
Map<String, Object> input =
DWGsonProvider.getGson().fromJson(request.getBodyAsString(), new TypeToken<Map<String, Object>>() {}.getType());
// 以下是从请求body获取相关信息的示例,可根据需求参考规格文档修改
System.out.println("租戶sid: " + input.get("tenantSid"));
System.out.println("租戶id: " + input.get("tenantId"));
System.out.println("租户名称: " + input.get("tenantName"));
Map<String, Object> authorizations =
((ArrayList<Map<String, Object>>)input.get("authorizations")).get(0);
System.out.println(authorizations.get("商品id: " + "id"));
System.out.println(authorizations.get("商品code: " + "code"));
Map<String, Object> sellingStrategy = (Map)authorizations.get("sellingStrategy");
System.out.println(sellingStrategy.get("销售方案id: " + "id"));
System.out.println(sellingStrategy.get("销售方案code: " + "code"));
// 在这里写要做的初始化操作
// 初始化完成后返回成功
return DWServiceResultBuilder.build("ok");
}
}
页:
[1]