營利通知無法運作

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

問題

營利通知功能無法運作,因此系統不會將電子郵件傳送給訂閱的使用者。

錯誤訊息

系統不會向已訂閱頻道的使用者發送營利通知電子郵件。系統不會觀察到任何錯誤訊息。

關於營利事件通知

營利功能支援事件通知,可讓您:

  1. 通知所有開發人員,例如新產品、條款及細則的新版本或新費率方案。
  2. 通知特定開發人員,說明相關事件,例如帳單文件已發布,或已達到交易目標次數百分比 (如購買了可調整的通知費率方案)。
  3. 通知 API 供應商有關開發人員相關事件,例如開發人員註冊帳戶,或開發人員註冊費率方案時。
  4. 如要進一步瞭解通知類型以及設定方式,請按這裡

必要條件

請確認你符合下列必要條件:

  1. 接受費率方案

    針對下列營利通知,檢查開發人員是否已接受相應的費率方案:

    1. 新增房價方案
    2. 修改費率方案
    3. 過期費率方案
    4. 續約費率方案
    5. 超過頻率限制
    6. 免費增值費率方案用盡

      如果開發人員尚未接受房價方案,系統就不會為該特定開發人員觸發這類通知。

  2. 請針對該特定通知執行工作排程器

    營利服務提供工作排程器和一組預先排定在預先指定時間執行的工作。必須針對特定通知執行工作排程器。如未執行,就不會觸發通知。

    1. 請按照下列文件提供的操作說明,確認特定通知的排定工作是否已執行:

      安排營利工作

      注意:您隨時可以根據使用情形變更時間表。

    2. 如果特定通知的排定工作已執行,但您仍未收到通知,請前往「可能的原因」一節,進一步排解問題。
    3. 如果沒有,請等待特定通知的排定工作執行完畢。

可能原因

這個問題有幾個可能的原因:

原因 說明 適用的疑難排解指示
SMTP 設定不正確 您提供的 SMTP 設定有誤。 Edge Private Cloud 使用者

通知工作時間表

通知工作尚未啟動。 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 設定正確無誤,請執行「查看通知已傳送」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,則上方特定通知 'Update Developer' 的狀態會顯示為「失敗」。

  6. 這可能是因為管理伺服器無法連線至 SMTP 伺服器和通訊埠。使用 telnet 指令檢查您是否能夠透過指定的通訊埠連線至指定的 SMTP 伺服器。
    telnet <SMTP-server-IP-address> <SMTP-Port#>
    

    如果 telnet 輸出內容顯示「連線逾時」或「連線遭拒」錯誤,請繼續解決問題。

解析度

  1. 請與您的網路管理員合作,確保 SMTP 伺服器能夠接受其他機器的連線,且特定通訊埠對外部開放通訊。
  2. 如果問題仍未解決,請繼續參閱「必須收集診斷資訊」,

原因 2:通知工作時間表

通知工作尚未啟動。

診斷方式

  1. 執行下列 API 呼叫,查看目前排定的所有營利工作。

    /monetize/apis/get/triggers

  2. 檢查是否存在通知條件,以及是否針對未正常運作的通知啟用此功能。如果沒有,請繼續進行步驟 3 建立通知條件,並略過其餘步驟。
    1. 如有這個事件,請檢查是否已啟用 True。如未設定,請執行「Update a notificationcondition and action API」來更新通知條件。

    2. 透過 UI,按照以下文件中提供的程序更新通知條件:

      事件 UI

    3. 執行「Create a notificationcondition and action API」呼叫,建立適當的通知條件和對應的動作。
      1. 建立通知條件後,請執行 List Notifications 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