云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式数据库_数据库是什么软件_限量秒杀

小七 141 0

这篇关于如何将任何短信服务提供商连接到SAP Marketing Cloud的博文由两章组成:

概述

为了反馈发送的短信是否成功到达目的地,短信服务提供了将状态更新返回到用户指定的URL的机会。与大多数消息传递服务一样,SAP Digital Interconnect发送一个HTTP GET请求,其中包含存储在查询参数中的SMS状态信息。通常,发送这个httpget请求时没有任何身份验证信息,如果指定的目的地需要传入的请求来提供至少基本的身份验证,则会导致问题。因此,短信状态信息(如SAP Digital Interconnect提供的信息)不能直接发送到SAP Marketing Cloud,也不能发送到SAP Cloud Integration。

这就是为什么我们需要一个额外的中间件层来实现短信跳出场景,它不需要对传入请求进行任何身份验证,并且能够缓冲短信状态信息,直到它被SAP Marketing Cloud收集。在本例中,一个在SAP云平台上运行的Cloud Foundry Servlet正在被实现来完成这项工作。

上图显示了在我们的示例中,物联网大赛,不同的技术如何在SAP Digital Interconnect作为服务提供商的情况下协同工作,并说明了不同的处理步骤:

取决于开发人员的偏好,获取跳转的基本逻辑(如查询时间框架、设置分页等)可以在SAP云平台集成中实现,也可以在cloudfoundryservlet中实现。在此示例中,完整的逻辑已在Cloud Foundry Servlet中实现,而SAP Cloud Integration仅用作重定向工具。

接口定义

在本节中,简要概述了通用SMS SP适配器的状态接口以及SAP Digital Interconnect发送的状态更新的结构,作为例子,我们将给出。完整的接口定义可以在集成指南中找到:通用文本消息集成。

SAP Marketing Cloud的通用SMS SP适配器使用以下URL参数向端点/状态发送HTTP GET请求:

startTimeUTC:描述要检索的反弹发生的时间帧的开始时间。结束时间UTC:描述要检索的反弹发生的时间帧的结束时间。页码:对于很长的结果列表,大多数ESP不会在一个响应中返回所有结果,而是在包含大约100个结果的多个页面中。此参数确定应检索结果列表的哪一页。始终通过发送页值0来查询第一页。源系统:标识发送HTTP请求的系统。

毕竟,SAP Marketing Cloud发送的完整GET请求可能如下所示:

/status?startTimeUTC=20171014132922&endTimeUTC=20171024142000&page=0&sourceSystem=TestSystem1

对上述请求的响应应具有以下结构:

备注:SAP Marketing Cloud系统不会处理状态码。因此,不需要将其映射到JSON。

虽然属性"page"用作当前反弹包的标识符,但属性"lastPage"指示是否有更多的包可以通过发送进一步的请求来检索。因此,给定时间段的最后一个包为属性"lastPage"

提供值true。如果传入的文本消息请求包含参数MobileNotification、AckType和AckReplyAddress,则消息传递状态的更新将发送到参数AckReplyAddress指定的URL。此更新作为HTTP GET请求发送,大数据说,并包含以下查询参数:

orderID:表示来自SAP Digital Interconnect的内部订单ID(对应于SAP Marketing Cloud的消息ID)时间:状态更新的时间。日期:状态更新的日期。msisdn编号:相应信息发送到的电话号码。状态:状态代码和状态文本的组合。如果消息传递成功,此参数仅包含一个通用字符串。

因此,SAP Digital Interconnect传入的状态更新可能如下所示:

?orderid=123456789&time=155423&date=14032018&msisdn=+49123456789&status='0x4503订单的消息1在+49123456789的目的地163601044超出覆盖范围'

SCP Servlet

由于概述部分所述的原因,SAP Digital Interconnect的状态更新无法直接发送到SAP Marketing Cloud。这就是为什么我们需要一个中间件来缓冲传入的状态更新,并为SAP Marketing Cloud提供一个API来获取它们。在本例中,在SAP Cloud平台上实现了相应的中间件,作为用NodeJS编写的Cloud Foundry Servlet,并带有用于数据持久性的PostgresDB。

在下一节中,将描述Servlet最重要的方面。

Notification Collector Servlet提供了三个端点,可以通过HTTP GET寻址请求:

/api/v1/notifications/get:对该端点的请求返回PostgresDB中持久化的状态通知。如果在没有任何参数的情况下请求,则会返回所有可用的通知。如果指定了参数startTimeUTC、endTimeUTC和page,则只返回相应的数据集。请注意,这个API与上面GET Request一节中描述的来自SAP营销云的GET请求的规范完全匹配。/api/v1/notifications/set:对该端点的请求触发在PostgresDB中创建新的数据集。只有通过查询参数orderID、time、date、msisdn和status提供了所有必要的信息时,才会创建数据集。请再次注意,物联网工程课程,这些参数与SAP Digital Interconnect发送的HTTP GET请求中包含的参数匹配,如SAP Digital Interconnect一节所述。/api/v1/notifications/clear:此端点仅用于测试目的,并触发所有数据库内容的完全删除。

Notification Collector Servlet仅使用PostgresDB上的一个表,其字段与SAP Marketing Cloud状态更新的预期响应结构完全匹配(参见预期响应部分):