通过SOAP(服务器端)集成

为优惠管理提供的SOAP Web服务与Adobe Campaign中通常使用的服务不同。 您可以通过上一节中介绍的交互URL访问它们,并允许您演示或更新给定联系人的优惠。

优惠建议

对于通过SOAP进行的优惠建议,添加​nms:pomposition#Phoned​命令,后跟以下参数:

  • targetId:收件人的主键(可以是复合键)。
  • maxCount:指定联系人的优惠建议数。
  • 上下文:允许您在空间模式中添加上下文信息。如果使用的模式为​nms:interaction,则应添加​<empty>
  • 类别:指定优惠必须属于的类别。
  • 主题:指定优惠必须属于的主题。
  • uuid:Adobe Campaign永久Cookie的值("uuid230")。
  • nli:Adobe Campaign会话Cookie(“nlid”)的值。
  • noProp:使用“true”值取消激活建议插入。
注意

targetId​和​maxCount​设置是强制设置。 其他则是可选的。

响应查询,SOAP服务将返回以下参数:

  • interactionId:交互的ID。
  • 陈述:XML元素,包含命题的列表,每个命题都有自己的ID和HTML表示形式。

优惠更新

将​nms:interaction#UpdateStatus​命令添加到URL,后跟以下参数:

  • 主张:字符串,它包含在优惠建议期间作为输出给定的主题ID。请参阅优惠建议
  • 状态:字符串类型,它指定优惠的新状态。在​nms:common​明细列表的​命题状态​模式中列出可能的值。 例如,现成数字3与​Accepted​状态相对应。
  • 上下文:XML元素,允许您在空间模式中添加上下文信息。如果使用的模式为​nms:interaction,则应添加​<empty>

使用SOAP调用的示例

以下是SOAP调用的代码示例:

<%
  var space = request.parameters.sp
  var cnx = new HttpSoapConnection(
    "https://" + request.serverName + ":" + request.serverPort + "/interaction/" + env + "/" + space,
    "utf-8",
    HttpSoapConnection.SOAP_12)
  var session = new SoapService(cnx, "nms:interaction")
  var action = request.parameters.a
  if( action == undefined )
    action = 'propose'

  try
  {
    switch( action )
    {
    case "update":
      var proposition = request.parameters.p
      var status      = request.parameters.st
      session.addMethod("UpdateStatus", "nms:interaction#UpdateStatus",
       ["proposition", "string",
        "status",      "string",
        "context",     "NLElement"],
       [])
      session.UpdateStatus(proposition, status, <undef/>)
      var redirect = request.parameters.r
      if( redirect != undefined )
        response.sendRedirect(redirect)
      break;

    case "propose":
      var count = request.parameters.n
      var target = request.parameters.t
      var categorie = request.parameters.c
      var theme = request.parameters.th
      var layout = request.parameters.l
      if( count == undefined )
        count = 1
      session.addMethod("Propose", "nms:proposition#Propose",
       ["targetId",      "string",
        "maxCount",      "string",
         "categories",    "string",
         "themes",        "string",
        "context",       "NLElement"],
       ["interactionId", "string",
        "propositions",  "NLElement"])
      response.setContentType("text/html")
      var result = session.Propose(target, count, category, theme, <empty/>)
      var props = result[1]
  %><table><tr><%
      for each( var propHtml in props.proposition.*.mdSource )
      {
        %><td><%=propHtml%></td><%
      }
  %></tr></table><%
      break;
    }
  }
  catch( e )
  {
  }
  %>

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now