Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Giới thiệu
Tính năng kiếm tiền cung cấp một bộ API mà bạn có thể dùng để kiểm thử chế độ thiết lập thông báo. Cụ thể, bạn có thể:
- Kiểm thử việc thực thi webhook để đảm bảo thông báo đang được gửi
- Xem xét và xử lý lại các thông báo đã gửi
Kiểm thử webhook
Webhook xác định một trình xử lý gọi lại HTTP được kích hoạt bởi một sự kiện. Để biết thông tin về cách thiết lập webhook, hãy xem bài viết Thiết lập thông báo bằng webhook.
Bạn có thể kiểm thử webhook bằng cách thực hiện các bước sau:
- Xem các loại điều kiện kích hoạt thông báo webhook hiện có
- Xem một gói dữ liệu yêu cầu mẫu để kiểm thử thông báo webhook
- Kiểm thử việc thực thi webhook
Xem các loại điều kiện kích hoạt thông báo webhook hiện có
Xem các loại điều kiện kích hoạt thông báo webhook có sẵn bằng cách gửi yêu cầu GET đến tài nguyên sau:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}
Trong trường hợp:
{org_name}chỉ định tên của tổ chức.{webhook_id}chỉ định mã nhận dạng của webhook. Để xem danh sách webhook và lấy mã nhận dạng webhook, hãy xem phần Xem tất cả webhook bằng API.{developer_email_or_id}chỉ định mã nhận dạng của nhà phát triển. Để xem danh sách nhà phát triển, hãy xem phần Liệt kê nhà phát triển.{app_id}chỉ định mã nhận dạng của ứng dụng mà bạn đang kiểm thử việc kích hoạt webhook. Để liệt kê mã ứng dụng trong tổ chức của bạn, hãy xem phần Liệt kê mã ứng dụng trong một tổ chức.{product_id}chỉ định mã nhận dạng của sản phẩm API mà bạn đang kiểm thử việc kích hoạt webhook. Để xem danh sách các sản phẩm API cho một tổ chức, hãy xem phần Liệt kê các sản phẩm API.{rateplan_id}chỉ định mã nhận dạng của gói giá mà bạn đang kiểm thử việc kích hoạt webhook. Mã gói giá khác với tên hiển thị. Để xem thông tin chi tiết về gói giá, bao gồm cả mã nhận dạng, hãy xem phần Khám phá trang gói giá.
Ví dụ: lệnh gọi cURL sau đây sẽ trả về RATEPLANQUOTAUSAGE làm loại điều kiện kích hoạt thông báo webhook.
curl -H "Content-Type: application/json" -X GET \ "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \ -u email:password
Sau đây là ví dụ về phản hồi:
[ "RATEPLANQUOTAUSAGE" ]
Tiếp theo, bạn cần xác định giản đồ cho tải trọng yêu cầu đối với loại điều kiện kích hoạt thông báo webhook.
Xem tải trọng yêu cầu mẫu để kiểm thử thông báo webhook
Xem tải trọng yêu cầu mẫu mà bạn có thể dùng để kiểm thử thông báo webhook bằng cách đưa ra yêu cầu GET cho tài nguyên sau:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}/{trigger_type}
Trong trường hợp:
{org_name}chỉ định tên của tổ chức.{webhook_id}chỉ định mã nhận dạng của webhook. Để xem danh sách webhook và lấy mã nhận dạng webhook, hãy xem phần Xem tất cả webhook bằng API.{developer_email_or_id}chỉ định mã nhận dạng của nhà phát triển. Để xem danh sách nhà phát triển, hãy xem phần Liệt kê nhà phát triển.{app_id}chỉ định mã nhận dạng của ứng dụng mà bạn đang kiểm thử việc kích hoạt webhook. Để liệt kê mã ứng dụng trong tổ chức của bạn, hãy xem phần Liệt kê mã ứng dụng trong một tổ chức.{product_id}chỉ định mã nhận dạng của sản phẩm API mà bạn đang kiểm thử việc kích hoạt webhook. Để xem danh sách các sản phẩm API cho một tổ chức, hãy xem phần Liệt kê các sản phẩm API.{rateplan_id}chỉ định mã nhận dạng của gói giá mà bạn đang kiểm thử việc kích hoạt webhook. Mã gói giá khác với tên hiển thị. Để xem thông tin chi tiết về gói giá, bao gồm cả mã nhận dạng, hãy xem phần Khám phá trang gói giá.{trigger_type}chỉ định tên của loại điều kiện kích hoạt thông báo webhook được trả về ở bước trước (Liệt kê các loại điều kiện kích hoạt thông báo webhook hiện có).
Ví dụ: lệnh gọi cURL sau đây trả về một tải trọng yêu cầu mẫu cho loại trình kích hoạt thông báo webhook RATEPLANQUOTAUSAGE:
curl -H "Content-Type: application/json" -X GET \ "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp/RATEPLANQUOTAUSAGE" \ -u email:password
Sau đây là một tải trọng yêu cầu mẫu:
{
"eventTriggerReason": "RATEPLANQUOTAUSAGE",
"properties": [
{
"key": "quotaPercentUsed",
"value": "100"
}
]
}
Tiếp theo, bạn sửa đổi tải trọng yêu cầu mẫu được trả về (nếu muốn) và dùng tải trọng đó để kiểm thử việc thực thi webhook.
Kiểm thử việc thực thi webhook
Kiểm thử việc thực thi webhook bằng cách đưa ra yêu cầu POST cho tài nguyên sau:
/organizations/{org_name}/webhooks/{webhook_id}/test/{developer_email_or_id}/{app_id}/{product_id}/{rateplan_id}.
Trong trường hợp:
{org_name}chỉ định tên của tổ chức.{webhook_id}chỉ định mã nhận dạng của webhook. Để xem danh sách webhook và lấy mã nhận dạng webhook, hãy xem phần Xem tất cả webhook bằng API.{developer_email_or_id}chỉ định mã nhận dạng của nhà phát triển. Để xem danh sách nhà phát triển, hãy xem phần Liệt kê nhà phát triển.{app_id}chỉ định mã nhận dạng của ứng dụng mà bạn đang kiểm thử việc kích hoạt webhook. Để liệt kê mã ứng dụng trong tổ chức của bạn, hãy xem phần Liệt kê mã ứng dụng trong một tổ chức.{product_id}chỉ định mã nhận dạng của sản phẩm API mà bạn đang kiểm thử việc kích hoạt webhook. Để xem danh sách các sản phẩm API cho một tổ chức, hãy xem phần Liệt kê các sản phẩm API.{rateplan_id}chỉ định mã nhận dạng của gói giá mà bạn đang kiểm thử việc kích hoạt webhook. Mã gói giá khác với tên hiển thị. Để xem thông tin chi tiết về gói giá, bao gồm cả mã nhận dạng, hãy xem phần Khám phá trang gói giá.
Sửa đổi tải trọng yêu cầu mẫu được trả về ở bước trước (Xem tải trọng yêu cầu mẫu để kiểm thử thông báo webhook) theo ý muốn và truyền tải trọng đó trong tải trọng yêu cầu.
Ví dụ: lệnh gọi cURL sau đây kiểm thử việc thực thi webhook đã chỉ định:
curl -H "Content-Type: application/json" -X POST -d \
'{
"eventTriggerReason": "RATEPLANQUOTAUSAGE",
"properties": [
{
"key": "quotaPercentUsed",
"value": "120"
}
]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/webhooks/0a07eb1f-f485-4539-8beb-01be449699b3/test/joe@example.com/e759c119-510c-49a8-886c-f184091944bd/myproduct/mypackage_anrp" \
-u email:password
Sau đây là ví dụ về phản hồi cho biết thông báo đã được gửi thành công đến webhook:
{
"original": {
"createdDate": 1463619959930,
"createdTimeStamp": 1463616000000,
"notificationType": "WEBHOOK",
"orgId": "myorg",
"rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"MyPackage\",\"packageId\":\"mypackage\",\"ratePlanId\":\"mypackage_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":200,\"quotaPercentUsed\":\"120\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[]\"triggerTime\":1463619959929,\"triggerReason\":\"RATEPLANQUOTAUSAGE\",\"developerQuotaResetDate\":null}",
"retryCount": 0,
"retryStatuses": [],
"source": "MailTo: [36112720-1304-4e0b-9b17-991f5e121ebb], Org: [myorg], TransactionId: [], LimitId: [], Key: []",
"toEmail": "http://123.45.67.89/webhook",
"updatedDate": 1463619959930
},
"raw": "This is the response",
"responseCode": 200,
"status": "NOTIFICATION_SENT"
}
Xem và xử lý lại thông báo
Tính năng kiếm tiền cho phép bạn thiết lập thông báo được kích hoạt bởi các sự kiện cụ thể. Để biết thông tin về cách thiết lập thông báo, hãy xem bài viết Thiết lập thông báo
Đối với mỗi thông báo được gửi, hệ thống sẽ lưu trữ những thông tin sau:
- Số lần thử lại
- Mã phản hồi
- Tiêu đề phản hồi
- Nội dung phản hồi (chỉ 1000 ký tự đầu tiên)
Bạn có thể xem và xử lý lại thông báo bằng cách thực hiện các bước sau:
Xem các thông báo đã gửi
Xem những thông báo đã được gửi cho một tổ chức bằng cách đưa ra yêu cầu GET cho tài nguyên sau:
/organizations/{org_name}/notification-service-items
Trong đó {org_name} chỉ định tên của tổ chức.
Nếu muốn, bạn có thể chỉ định một hoặc nhiều tham số truy vấn sau đây để lọc danh sách thông báo được trả về trong phản hồi:
| Tham số truy vấn | Mô tả |
|---|---|
startdate |
Ngày bắt đầu ở định dạng YYYY-MM-DD HH:mm:ss. |
enddate |
Ngày kết thúc ở định dạng YYYY-MM-DD HH:mm:ss. |
status |
Trạng thái của thông báo. Các giá trị hợp lệ bao gồm:
|
toemail |
Mã nhận dạng email hoặc webhook mà thông báo được gửi đến. |
Hệ thống sẽ trả về tối đa 1.000 thông báo.
Trong phản hồi, cờ hasMoreItems cho biết liệu số lượng thông báo trong danh sách được chỉ định có vượt quá 1.000 hay không. Nếu hasMoreItems là true, tức là có nhiều thông báo hơn mức có thể hiển thị và bạn muốn xem các thông báo còn lại, thì bạn cần tinh chỉnh bộ lọc tham số truy vấn để xử lý các nhóm thông báo nhỏ hơn cho mỗi yêu cầu. Ví dụ: bạn có thể thực hiện nhiều yêu cầu bằng cách sử dụng một số phạm vi ngày nhỏ hơn hoặc trả về thông báo chỉ với một số giá trị trạng thái nhất định.
Ví dụ: lệnh gọi cURL sau đây liệt kê những thông báo THẤT BẠI cho webhook đã chỉ định trong phạm vi ngày đã chỉ định:
curl -H "Content-Type: application/json" -X GET \ "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items?enddate=2016-05-19 12:00:00&startdate=2016-05-18 12:00:00&status=FAILED&toemail=http://123.45.6789:8000/webhook" \ -u email:password
Sau đây là ví dụ về phản hồi:
{
"hasMoreItems": false,
"notifications": [
{
"createdDate": 1463626865974,
"createdTimeStamp": 1463616000000,
"id": "9d87c6ea-1394-495b-bfb7-1d2e7ef3f837",
"notificationType": "WEBHOOK",
"orgId": "Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f",
"rawMessage": "{\"orgName\":\"Org_d40f6c2e-1d6d-11e6-a4ed-af8444f24e4f\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",
\"packageName\":\"test-package\",\"packageId\":\"myorg@@@test-package-9ubo\",\"ratePlanId\":\"myorg@@@test-package-9ubo_anrp\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",
\"developerRatePlanQuotaTarget\":10,\"quotaPercentUsed\":\"20\",\"ratePlanStartDate\":1463616000000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":1464739200000,\"products\":[\"product1\"],
\"developerCustomAttributes\":[],\"triggerTime\":1463626865907,\"triggerReason\":\"RatePlanQuotaUsage\",\"developerQuotaResetDate\":\"1464810145000\"}",
"retryCount": 3,
"retryStatuses": [
{
"responseCode": 500,
"responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}",
"retriedAt": 1463626869184,
"retryAttempt": 1
},
{
"responseCode": 500,
"responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}",
"retriedAt": 1463626869318,
"retryAttempt": 2
},
{
"responseCode": 500,
"responseMessage": "{\"Headers\":\"[{\"name\":\"Content-length\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":15,\"value\":\"20\",\"elements\":[{\"name\":\"20\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]},{\"name\":\"Date\",\"buffer\":{\"empty\":false,\"full\":false},\"valuePos\":5,\"value\":\"Thu, 19 May 2016 03:01:09 GMT\",\"elements\":[{\"name\":\"Thu\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"19 May 2016 03:01:09 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}]}]\",\"StatusCode\":\"500\",\"Content : \":\"This is the response\"}",
"retriedAt": 1463626869378,
"retryAttempt": 3
}
],
"source": "MailTo: [6c3cde37-a8f1-4077-adbe-e9f6605a7299], Org: [myorg], TransactionId: [b8d763be-7185-450d-b421-df38c870fabd], LimitId: [RatePlan-Limit:myorg@@@test-package-9ubo_anrp], Key: [myorg@@@kjGSxEGtZeekBEyI~myorg@@@test-package-9ubo_anrp~Transactions~Calls~20]",
"status": "FAILED",
"toEmail": "http://123.45.67.89:8000/webhook",
"updatedDate": 1463626865974
}
]
}
Xem thông tin chi tiết về một thông báo
Xem thông tin chi tiết của một thông báo cụ thể bằng cách gửi yêu cầu GET đến tài nguyên sau:
/organizations/{org_name}/notification-service-items/{notification_id}
Trong trường hợp:
{org_name}chỉ định tên của tổ chức.{notification_id}chỉ định mã nhận dạng của thông báo mà bạn muốn hiển thị thông tin chi tiết. Bạn có thể lấy mã nhận dạng thông báo từ đầu ra phản hồi khi xem các thông báo đã gửi.
Ví dụ: lệnh gọi cURL sau đây liệt kê thông tin chi tiết cho thông báo có mã nhận dạng 4b3dfadf-3a96-4a92-9512-1feff22f74f3:
curl -H "Content-Type: application/json" -X GET \ "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23" \ -u email:password
Sau đây là ví dụ về phản hồi:
{
"createdDate": 1461062402871,
"createdTimeStamp": 1461024000000,
"id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
"notificationType": "WEBHOOK",
"orgId": "myorg",
"rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
"retryCount": 0,
"retryStatuses": [],
"source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
"status": "NOTIFICATION_SENT",
"toEmail": "http://123.45.67.89:8000/webhook",
"updatedDate": 1461062402871
}
Xử lý lại thông báo
Xử lý lại thông báo bằng cách gửi yêu cầu POST đến tài nguyên sau:
/organizations/{org_name}/notification-service-items/{notification_id}/reprocess
Trong trường hợp:
{org_name}chỉ định tên của tổ chức.{notification_id}chỉ định mã nhận dạng của mục thông báo mà bạn muốn hiển thị thông tin chi tiết. Bạn có thể lấy mã nhận dạng thông báo từ đầu ra phản hồi khi xem các thông báo đã gửi.
Ví dụ: lệnh gọi cURL sau đây sẽ xử lý lại thông báo có mã nhận dạng 4b3dfadf-3a96-4a92-9512-1feff22f74f3:
curl -H "Content-Type: application/json" -X POST \ "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/notification-service-items/faa8e6a8-754e-40e8-9e0c-4dee6c9aca23/reprocess" \ -u email:password
{
"createdDate": 1461062402871,
"createdTimeStamp": 1461024000000,
"id": "faa8e6a8-754e-40e8-9e0c-4dee6c9aca23",
"notificationType": "WEBHOOK",
"orgId": "myorg",
"rawMessage": "{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"myapp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"myproduct\"],\"developerCustomAttributes\":[],\"triggerTime\":1461062395966,\"triggerReason\":\"RatePlanQuotaUsage\"}",
"retryCount": 0,
"retryStatuses": [
{
"responseCode": 200,
"responseMessage": "{\"Headers\":\"[{\"name\":\"Accept-Encoding\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"gzip\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"deflate\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"gzip,deflate\"},{\"name\":\"Content-Type\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":13,\"elements\":[{\"name\":\"application/json\",\"value\":null,\"parameters\":[{\"name\":\"charset\",\"value\":\"UTF-8\"}],\"parameterCount\":1}],\"value\":\"application/json; charset=UTF-8\"},{\"name\":\"Date\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":5,\"elements\":[{\"name\":\"Mon\",\"value\":null,\"parameters\":[],\"parameterCount\":0},{\"name\":\"23 May 2016 21:46:37 GMT\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Mon, 23 May 2016 21:46:37 GMT\"},{\"name\":\"Server\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":7,\"elements\":[{\"name\":\"Apigee Router\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apigee Router\"},{\"name\":\"User-Agent\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"Apache-HttpClient/4.3.5 (java 1.5)\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"Apache-HttpClient/4.3.5 (java 1.5)\"},{\"name\":\"X-Forwarded-For\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":16,\"elements\":[{\"name\":\"54.200.58.80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"54.200.58.80\"},{\"name\":\"X-Forwarded-Port\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":17,\"elements\":[{\"name\":\"80\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"80\"},{\"name\":\"X-Forwarded-Proto\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":18,\"elements\":[{\"name\":\"http\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"http\"},{\"name\":\"Content-Length\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":15,\"elements\":[{\"name\":\"1173\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"1173\"},{\"name\":\"Connection\",\"buffer\":{\"full\":false,\"empty\":false},\"valuePos\":11,\"elements\":[{\"name\":\"keep-alive\",\"value\":null,\"parameters\":[],\"parameterCount\":0}],\"value\":\"keep-alive\"}]\",\"StatusCode\":\"200\",\"Content : \":\"{\"orgName\":\"myorg\",\"developerEmail\":\"joe@example.com\",\"developerFirstName\":\"Joe\",\"developerLastName\":\"Smith\",\"applicationName\":\"MyApp\",\"packageName\":\"mypackage\",\"ratePlanName\":\"anrp\",\"ratePlanType\":\"STANDARD\",\"developerRatePlanQuotaTarget\":54000,\"quotaPercentUsed\":\"1\",\"ratePlanStartDate\":1460419200000,\"ratePlanEndDate\":null,\"nextBillingCycleStartDate\":null,\"products\":[\"product1\"],\"developerCustomAttributes\":[],
"source": "MailTo: [c9e42fcd-9632-4376-b92d-0fa27f178a3b], Org: [myorg], TransactionId: [0352e568-2724-42d9-a264-1b62586d5948], LimitId: [RatePlan-Limit:amyorg@@@mypackage-a0y9_anrp], Key: [myorg@@@PPXsQbkyO1bBhQOh~myorg@@@mypackage-a0y9_anrp~Transactions~Calls~1]",
"status": "NOTIFICATION_SENT",
"toEmail": "http://123.45.67.89:8000/webhook",
"updatedDate": 1461062402871
}