创收通知功能无法正常运作

您正在查看 Apigee Edge 文档。
转到 Apigee X 文档。
info

问题

创收通知功能无法正常运行,因此系统不会向订阅用户发送电子邮件。

错误消息

系统不会向订阅用户发送有关创收通知的电子邮件。您不会看到任何错误消息。

关于创收事件通知

创收功能支持事件通知,让您可以:

  1. 向所有开发者通知新产品、新版条款及条件或新费率方案等事件。
  2. 向特定开发者通知帐单文档已发布或交易次数达到目标交易次数的百分比(如果他们购买了可调整的通知费率方案)等事件。
  3. 向 API 提供商通知与开发者相关的事件,例如开发者注册帐号或开发者注册费率方案。
  4. 如需详细了解通知类型以及如何设置通知,请点击此处。

前提条件

请确保满足以下前提条件:

  1. 接受费率方案

    对于以下创收通知,请检查开发者是否已接受相应的费率方案:

    1. 新费率方案
    2. 修订后的费率方案
    3. 已过期的费率方案
    4. 已续订的费率方案
    5. 超出速率限制
    6. 免费增值费率方案已用完

      如果开发者未接受费率方案,则系统不会针对该特定开发者触发这些通知。

  2. 应针对特定通知运行作业调度器

    创收功能提供了一个作业调度器和一组预先安排在预先指定的时间运行的作业。需要针对特定通知运行作业调度器。如果未运行,则不会触发通知。

    1. 按照以下文档中提供的说明,查看是否已针对特定通知运行预定作业:

      安排创收作业

      注意 :您可以随时根据自己的使用情形更改时间表。

    2. 如果已针对特定通知运行预定作业,但您仍未收到通知,请前往可能的原因部分,进一步排查此问题。
    3. 否则,请等到针对特定通知运行预定作业。

可能的原因

此问题的一些可能原因如下:

原因 说明 适用的问题排查说明
SMTP 配置不正确 提供的 SMTP 配置不正确。 Edge Private Cloud 用户

通知作业时间表

通知作业尚未开始。 Edge Public Cloud 和 Private Cloud 用户

原因 1:SMTP 配置不正确

诊断

  1. 检查 /opt/apigee/edge-mint-management-server/conf/apix-mint.properties 文件,并验证以下 SMTP 属性是否设置正确。
    mint.notification.javaMail.properties={"mail.smtp.host": "smtp.gmail.com",
    "mail.smtp.port": "465", "mail.smtp.starttls.enable": "true", "mail.smtp.auth": "true", "mail.smtp.username": "blah@gmail.com", "mail.smtp.password": "blah" }
  2. 验证 SMTP 服务器和用户设置是否正确。如果这些设置不正确或未设置,请前往第 3 步。如果正确,请前往第 4 步。
  3. 按照以下文档中的说明正确更新 SMTP 服务器和用户设置:

    /private-cloud/latest/configuring-edge-smtp-server

  4. 再次检查创收通知是否正常运行。如果不是,请前往第 5 步。
  5. 如果 SMTP 设置正确,请运行 View notifications sent API 调用,查看已发送通知的状态。
    1. 此 API 会返回一个 JSON,其中包含所有已触发的通知以及每个通知的状态。
    2. 以下是 JSON 示例:
      {
              "hasMoreItems" : false,
              "notifications" : [ {
              "fromAlias" : "No Reply",
              "fromEmail" : "****@apigee.com",
              "id" : "4e2d0d9a-69a4-4430-957d-02fa2a3cb581",
              "notificationType" : "EMAIL",
              "orgId" : "myorg",
              "rawMessage" : "...",
              "retryCount" : 0,
              "retryStatuses" : [ {
                   "responseCode" : 0,
                   "responseMessage" : "{\"Headers\":null,\"Content : \":null,\"StatusCode\":\"0\"}",
                   "retriedAt" : 1518605291092,
                   "retryAttempt" : 0
              } ],
              "source" : "MailTo: [****@blah.com], Org: [myorg], EventType: [UPDATE_DEVELOPER]",
              "status" : "FAILED",
              "subject" : "Notification of developer changing company details",
              "templateId" : "814315c8-d8ca-4b3e-90bb-a8366600e625",
              "templateName" : "DEFAULT_UPDATE_DEVELOPER_TEMPLATE",
              "templateParametersJSON" : "{\"developer.legalName\":\"\",\"developer.name\":\"John Smith\"}",
              "toAlias" : "***@blah.com",
              "toEmail" : "***@blah.com",
              "unsubscribeURL" : "..."
      }

      如果您检查 JSON,它会针对上述特定通知 “更新开发者” 显示状态为“FAILED”(失败)。

  6. 这可能是因为管理服务器无法访问 SMTP 服务器和端口。使用 telnet 命令检查您是否能够连接到指定端口上的指定 SMTP 服务器。
    telnet <SMTP-server-IP-address> <SMTP-Port#>

    如果 telnet 输出显示“Connection timed out”(连接超时)或“Connection refused”(连接被拒绝)错误,请前往“解决方案”。

解决方案

  1. 与您的网络管理员协作,确保 SMTP 服务器能够接受来自其他机器的连接,并且特定端口对外部世界开放以进行通信。
  2. 如果问题仍然存在,请前往“必须收集的诊断信息”,并提供

原因 2:通知作业时间表

通知作业尚未开始。

诊断

  1. 运行以下 API 调用,查看当前安排的所有创收作业。

    /monetize/apis/get/triggers

  2. 检查通知条件是否存在,以及是否已针对无法正常运行的通知启用该条件。如果不存在,请前往第 3 步创建通知条件,并跳过其余步骤。
    1. 如果存在,请检查是否已将其启用为 true。如果不是,请运行 Update a notification condition and action API,以更新通知条件。

      或

    2. 使用界面,按照以下文档中提供的流程更新通知条件:

      事件界面

    3. 运行 Create a notification condition and action API 调用,以创建适当的通知条件和相应操作。
      1. 创建通知条件后,运行 List notification conditions and actions API 调用,验证是否已创建通知条件。
      2. 您还可以使用 Reprocess a notification API 重新处理通知。
    4. 此步骤仅适用于 Private Cloud 用户 。如果通知条件已在第 1 步中存在,但您仍未收到通知电子邮件,请检查管理服务器日志 /opt/apigee/var/log/edge-management-server/logs/system.log,查看通知条件是否已触发。
      grep "Executing Mint Scheduler" /opt/apigee/var/log/edge-management-server/logs/system.log | grep  -o  "Executing Mint Scheduler : \[.*\]" | grep -v "for org : \[null\]" |sort | uniq -c
    5. 如果通知条件已触发,但您仍未收到通知,请前往必须收集的诊断信息,并提供上述步骤中捕获的信息和输出。

解决方案

  1. 使用 Reprocess a notification API 重新处理通知

必须收集的诊断信息

如果按照上述说明操作后问题仍然存在,请与 Apigee Edge 支持团队 联系,并提供以下诊断信息。

Public Cloud 和 Private Cloud 用户应提供以下信息:

  1. 组织名称
  2. 环境名称
  3. 无法正常运行的创收通知条件
  4. 有关此 Playbook 中已尝试过的部分以及有助于我们快速解决此问题的任何其他见解的详细信息。

除了上述信息之外,Private Cloud 用户还应提供以下信息:

  • 管理服务器日志

    /opt/apigee/var/log/edge-management-server/logs/system.log