Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về 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 để thử nghiệm chế độ thiết lập thông báo. Cụ thể, bạn có thể:
- Thử nghiệm 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 thông báo đã gửi
Kiểm thử webhook
Webhook xác định 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 cách sử dụng webhook.
Bạn có thể kiểm tra webhook bằng cách thực hiện các bước sau:
- Xem các loại trình kích hoạt thông báo webhook hiện có
- Xem tải trọng yêu cầu mẫu cho thông báo webhook kiểm thử
- Kiểm thử việc thực thi webhook
Xem các loại trình kích hoạt thông báo webhook hiện có
Xem các loại trình kích hoạt thông báo webhook có sẵn bằng cách gửi 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}
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 ID webhook, hãy xem phần Xem tất cả webhook bằng cách sử dụng .{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 Danh sách Nhà phát triển.{app_id}
chỉ định mã của ứng dụng mà bạn đang thử nghiệm webhook kích hoạt. Để liệt kê ID ứng dụng trong tổ chức của bạn, hãy xem Liệt kê ID ứng dụng trong 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ử 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 bài viết Liệt kê các sản phẩm API.{rateplan_id}
chỉ định mã của gói giá mà bạn đang thử nghiệm kích hoạt webhook. Mã gói giá khác với tên hiển thị. Cách xem gói giá thông tin chi tiết bao gồm mã nhận dạng, hãy xem Khám phá trang gói giá.
Ví dụ: lệnh gọi cURL sau đây trả về RATEPLANQUOTAUSAGE
dưới dạng webhook
loại trình kích hoạt thông báo.
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 thông báo webhook loại trình kích hoạt.
Xem tải trọng yêu cầu mẫu cho thông báo webhook đang kiểm tra
Xem tải trọng yêu cầu mẫu mà bạn có thể sử dụng để kiểm tra thông báo webhook bằng cách đưa ra GET yêu cầu đến 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 ID webhook, hãy xem phần Xem tất cả webhook bằng cách sử dụng .{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 Danh sách Nhà phát triển.{app_id}
chỉ định mã của ứng dụng mà bạn đang thử nghiệm webhook kích hoạt. Để liệt kê ID ứng dụng trong tổ chức của bạn, hãy xem Liệt kê ID ứng dụng trong 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ử 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 bài viết Liệt kê các sản phẩm API.{rateplan_id}
chỉ định mã của gói giá mà bạn đang thử nghiệm kích hoạt webhook. Mã gói giá khác với tên hiển thị. Cách xem gói giá thông tin chi tiết bao gồm mã nhận dạng, hãy xem 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ả lại ở bước trước (Liệt kê webhook có sẵn các loại trình kích hoạt thông báo).
Ví dụ: lệnh gọi cURL sau đây trả về một tải trọng yêu cầu mẫu cho
RATEPLANQUOTAUSAGE
loại trình 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/RATEPLANQUOTAUSAGE" \ -u email:password
Phần sau đây cung cấp 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à sử dụng tải trọng đó để kiểm thử thực thi webhook.
Kiểm thử quá trình thực thi webhook
Kiểm thử việc thực thi webhook bằng cách gửi yêu cầu POST cho tài nguyên sau đây:
/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 ID webhook, hãy xem phần Xem tất cả webhook bằng cách sử dụng .{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 Danh sách Nhà phát triển.{app_id}
chỉ định mã của ứng dụng mà bạn đang thử nghiệm webhook kích hoạt. Để liệt kê ID ứng dụng trong tổ chức của bạn, hãy xem Liệt kê ID ứng dụng trong 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ử 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 bài viết Liệt kê các sản phẩm API.{rateplan_id}
chỉ định mã của gói giá mà bạn đang thử nghiệm kích hoạt webhook. Mã gói giá khác với tên hiển thị. Cách xem gói giá thông tin chi tiết bao gồm mã nhận dạng, hãy xem 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 tra thông báo webhook) dưới dạng mong muốn rồi truyền dữ liệu đó vào tải trọng yêu cầu.
Ví dụ: lệnh gọi cURL sau đây sẽ kiểm tra 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
Dưới đây là ví dụ về phản hồi cho biết thông báo đã được gửi thành công với 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 từ các sự kiện cụ thể. Cho thông tin về cách thiết lập thông báo, hãy xem Thiết lập thông báo
Đối với mỗi thông báo được gửi đ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ỉ 1.000 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 các thông báo đã được gửi cho một tổ chức bằng cách gửi yêu cầu GET đến tài nguyên sau:
/organizations/{org_name}/notification-service-items
Trong trường hợp {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 để 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ã email hoặc webhook mà thông báo được gửi đến. |
Hệ thống trả về tối đa 1000 thông báo.
Trong phản hồi, cờ hasMoreItems
cho biết liệu số lượng
số lượng thông báo trong danh sách được chỉ định lên đến hơn 1000. Nếu hasMoreItems
là
true
, cho biết rằng có nhiều thông báo hơn số thông báo có thể hiển thị và bạn
muốn xem các thông báo còn lại, bạn cần phải tinh chỉnh bộ lọc thông số truy vấn
để xử lý các nhóm thông báo nhỏ hơn theo yêu cầu. Ví dụ: bạn có thể tạo nhiều
các yêu cầu sử dụng một vài phạm vi ngày nhỏ hơn hoặc chỉ gửi lại thông báo có trạng thái nhất định
giá trị.
Ví dụ: lệnh gọi cURL sau đây liệt kê các thông báo KHÔNG THÀNH CÔNG cho lệnh gọi được chỉ định webhook trong phạm vi ngày được 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 của một thông báo
Xem 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:
/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 nhận hiển thị chi tiết. Bạn có thể lấy mã thông báo trong kết quả 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 về 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 đưa ra yêu cầu POST cho 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 để xem thông tin chi tiết. Bạn có thể lấy mã thông báo trong kết quả 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 }