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

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

问题

创收通知未正常发挥作用,因此系统无法向订阅的用户发送电子邮件。

错误消息

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

创收活动通知简介

创收功能支持活动通知,可让您:

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

前提条件

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

  1. 费率方案接受

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

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

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

  2. 应该针对特定通知运行作业调度程序

    Monetization 功能提供作业调度器和一组预先安排在预先指定时间运行的作业。需要运行作业调度程序才能获得特定通知。如果未运行,则不会触发通知。

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

      安排创收作业

      注意:您可以随时根据您的用例更改时间表。

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

可能的原因

此问题的一些可能原因包括:

原因 说明 适用的问题排查说明
SMTP 配置不正确 提供的 SMTP 配置不正确。 边缘私有云用户

通知作业时间表

通知作业尚未启动。 Edge 公有云和私有云用户

原因 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”“Update Developer”的上述通知。

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

    如果您收到“连接超时”错误消息,或“连接被拒绝”然后转至“解决方法”

分辨率

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

原因 2:通知作业时间表

通知作业尚未启动。

诊断

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

    /monetize/apis/get/triggers

  2. 检查通知条件是否存在,以及是否已为无法正常运行的通知启用。如果不存在,请继续执行第 3 步,创建通知条件并跳过其余步骤。
    1. 如果存在,则检查其是否已启用为 true。如果不是,请运行更新通知条件和操作 API 来更新通知条件。

      或者

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

      事件界面

    3. 运行创建通知条件和操作 API 调用,以创建适当的通知条件和相应的操作。
      1. 创建通知条件后,运行 List notification conditions and actions API 调用以验证是否已创建通知条件。
      2. 您还可以使用重新处理通知 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. 使用重新处理通知 API 重新处理通知

必须收集的诊断信息

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

公有云和私有云用户应提供以下信息:

  1. 组织名称
  2. 环境名称
  3. 创收通知条件无效
  4. 详细说明本手册中的哪些内容已被尝试过,以及可帮助我们快速解决此问题的任何其他分析洞见。

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

  • 管理服务器日志

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