شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
مقدمه
در برخی موارد، ممکن است نیاز داشته باشید که شمارندههای تراکنش بر اساس یک متغیر یا مقدار سفارشی باشند. برای مثال، ممکن است لازم باشد:
- بر اساس مقداری که در پیام فراخوانی API ارائه میشود، مبلغ متغیری را از توسعهدهندگان دریافت کنید. برای مثال، ممکن است بخواهید بر اساس تعداد بایتهای ارسالی در درخواست API، از توسعهدهندگان برنامه هزینه دریافت کنید.
- چندین فراخوانی API را در یک تراکنش واحد دستهبندی کنید.
با استفاده از طرحهای نرخ با ویژگیهای سفارشی، میتوانید مقداری را در پیام یک فراخوانی API شناسایی کنید که به عنوان شمارنده عمل میکند و برای محاسبه تعداد تراکنشها و هزینهها استفاده میشود.
طرحهای نرخ زیر با ویژگیهای سفارشی پشتیبانی میشوند:
- کارت امتیاز با ویژگی سفارشی
- اعلان قابل تنظیم با ویژگی سفارشی
شما میتوانید حداکثر ده ویژگی سفارشی را برای هر طرح تعرفهای تنظیم کنید.
درک محاسبات ویژگیهای سفارشی
نحوهی لحاظ شدن مقدار ویژگی سفارشی در تعداد تراکنشها و هزینههای طرح نرخ، به مدل محاسبهی هزینه بستگی دارد که در جدول زیر خلاصه شده است.
| مدل شارژ | محاسبه ویژگی سفارشی |
|---|---|
| نرخ ثابت و حجم باند شده | برای نرخ ثابت، شماره ویژگی سفارشی برابر با تعداد تراکنشهایی میشود که در نرخ ضرب میشوند. برای نرخ حجمی، تعداد تراکنشهای موجود در یک باند به تعداد ویژگی سفارشی افزایش مییابد و از توسعهدهنده برای آن تعداد تراکنش هزینه دریافت میشود. به عنوان مثال، اگر مقدار یک ویژگی سفارشی در پیام ۱۰ باشد، برای ۱۰ تراکنش از توسعهدهنده هزینه دریافت میشود و ۱۰ تراکنش به تعداد باند فعلی اضافه میشود. اگر توسعهدهنده فقط ۶ تراکنش در باند فعلی باقی مانده داشته باشد، ۶ تراکنش در نرخ آن باند ضرب میشود. ۴ تراکنش باقیمانده به باند بعدی میروند و در نرخ آن باند ضرب میشوند. در یک طرح Volume Banded، اگر آخرین محدوده حجمی دارای محدودیت باشد ("نامحدود" نباشد) و یک تراکنش از آن محدودیت فراتر رود، دو اتفاق میافتد:
|
| بستهها | از آنجایی که هزینه بستهها توسط گروه محاسبه میشود، نه توسط تراکنش، محاسبه زیر انجام میشود: برای مثال، اگر شماره ویژگی سفارشی در پیام ۱۰ باشد، ۱۰ به تعداد تراکنشهای استفاده شده در بسته اضافه میشود. اگر توسعهدهنده فقط ۶ تراکنش در بسته فعلی باقی مانده داشته باشد، آن بسته پر میشود و تعداد بسته بعدی ۴ واحد افزایش مییابد. نرخ آن بسته بعدی، در صورت وجود، محاسبه میشود. اگر آخرین بسته محدودیت داشته باشد ("نامحدود" نباشد) و تراکنش از آن محدودیت تجاوز کند، دو اتفاق میافتد:
|
| اعلانهای قابل تنظیم | برای اعلان قابل تنظیم، محاسبه زیر انجام میشود: برای مثال، اگر شماره ویژگی سفارشی در پیام ۱۰ باشد، ۱۰ به تعداد کل تراکنشها اضافه میشود. |
جایی که طرح نرخ، مقدار ویژگی سفارشی را دریافت میکند
سیاست ثبت تراکنش (در بسته محصول API) به واحد کسب درآمد میگوید که در کجای پیام، مقدار ویژگی سفارشی را جستجو کند. شما ویژگی سفارشی را در بخش ویژگیهای سفارشی از سیاست ثبت تراکنش برای بسته محصول API تعریف میکنید.
سپس، میتوانید آن ویژگی سفارشی را در طرح نرخ انتخاب کنید—پس از اینکه یک بسته محصول API ایجاد کردید که شامل سیاست ثبت تراکنش با ویژگی سفارشی تعریف شده است.
جریان سطح بالا به شرح زیر است:
- هنگام افزودن یک محصول API، ویژگیهای سفارشی را تعریف کنید.
- یک بسته محصول API ایجاد کنید که شامل محصول باشد.
در سیاست ثبت تراکنش برای بسته محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده خواهند شد را اضافه کنید. - یک طرح نرخ از نوع کارت نرخ یا اعلان قابل تنظیم برای بسته محصول API ایجاد کنید و یک پارامتر رتبهبندی سفارشی مشخص کنید.
شکل زیر رابطه بین ویژگی سفارشی تعریف شده در سیاست ثبت تراکنش و پیکربندی طرح نرخ کارت را نشان میدهد. رابطه اعلان قابل تنظیم با طرح نرخ ویژگی سفارشی مشابه است، اگرچه مقدار باند حجمی قابل اجرا نیست.

نحوه تولید مقدار ویژگی سفارشی در پیام
سیاست ثبت تراکنش میتواند مقدار ویژگی سفارشی را در چندین مکان، مانند هدر پاسخ، بدنه پاسخ یا متغیرهای جریان از پیش تعریف شده در پاسخ، جستجو کند. (درخواست در دسترس نیست، زیرا یک تراکنش تا زمانی که پاسخ موفقیتآمیزی دریافت نکنید، رسمی نیست.) در ادامه مثالهایی آمده است که به شما نشان میدهد چگونه یک هدر پاسخ را با مقدار عددی آن به پیام اضافه کنید. در هر دو مورد، از سیاست اختصاص پیام همراه با متغیرها استفاده خواهیم کرد.
اضافه کردن اندازه بار درخواست به هدر پاسخ
در هر درخواست پیام، یک متغیر client.received.content.length وجود دارد که شامل تعداد بایتهای موجود در payload درخواست است. با اتصال یک سیاست Assign Message به پاسخ Proxy Endpoint، میتوانیم یک هدر پاسخ به نام messageSize ایجاد کنیم که شامل مقدار طول است:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="messageSize">{client.received.content.length}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
افزودن مقدار ویژگی سفارشی برنامه به هدر
تقریباً به همین روش، میتوانیم یک هدر با مقدار یک ویژگی سفارشی در یک برنامه ایجاد کنیم. برای مثال، اگر یک ویژگی سفارشی به نام apprating را در هر برنامه توسعهدهنده به صورت زیر اضافه کنید:

هنگام استفاده از سیاست Verify API Key (که برای کسب درآمد لازم است)، این مقدار در متغیری به نام verifyapikey.{policy_name}.apprating ذخیره میشود. با استفاده از سیاست Assign Message که به پاسخ Proxy Endpoint متصل شده است، میتوانید یک هدر به نام apprating ایجاد کنید که حاوی مقدار apprating برنامه باشد:
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1"> <DisplayName>Assign Message 1</DisplayName> <Set> <Headers> <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
تنظیم طرح نرخ
به غیر از تنظیمات ویژگیهای سفارشی که در بالا توضیح داده شد، طرح تعرفه به همان روشی که معمولاً انجام میدهید (برای طرحهای تعرفه بدون ویژگیهای سفارشی) تنظیم میشود، اما باید الزامات زیر را رعایت کند.
پیکربندی طرح کارت نرخ با ویژگی سفارشی با استفاده از رابط کاربری
طرحهای کارت تخفیف را با ویژگیهای سفارشی با استفاده از رابط کاربری Edge یا رابط کاربری کلاسیک Edge، همانطور که در بخشهای بعدی توضیح داده شده است، پیکربندی کنید.
لبه
برای پیکربندی طرح کارت نرخ با ویژگیهای سفارشی با استفاده از رابط کاربری Edge:
- هنگام افزودن یک محصول API، ویژگیهای سفارشی را تعریف کنید.
- یک بسته محصول API ایجاد کنید که شامل محصول باشد. به بخش ایجاد بستههای محصول API مراجعه کنید.
در سیاست ثبت تراکنش برای بسته محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده خواهند شد را اضافه کنید. برای جزئیات، به مقدمه در این مبحث و همچنین ایجاد یک سیاست ثبت تراکنش مراجعه کنید. - یک طرح نرخ برای بسته محصول API ایجاد کنید و یک پارامتر رتبهبندی سفارشی مشخص کنید.
برای اطلاعات بیشتر، به پیکربندی جزئیات طرح کارت نرخ با استفاده از رابط کاربری مراجعه کنید.
لبه کلاسیک (ابر خصوصی)
برای ایجاد یک کارت امتیاز با طرح ویژگی سفارشی با استفاده از رابط کاربری کلاسیک اج، از مراحل زیر استفاده کنید:
- در سیاست ثبت تراکنش یک محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده میشوند را اضافه کنید. برای جزئیات بیشتر، به مقدمه این مبحث و همچنین ایجاد یک سیاست ثبت تراکنش مراجعه کنید. این کار را برای هر محصول API که میخواهید در بسته API قرار دهید، انجام دهید.
- پس از اینکه محصولات API و سیاستهای ثبت تراکنش دقیقاً مطابق میل شما پیکربندی شدند، یک بسته API ایجاد کنید که شامل محصول باشد. به بخش ایجاد بستههای API مراجعه کنید.
- یک طرح نرخ برای بسته API ایجاد کنید و نوع طرح نرخ را Rate Card with Custom Attribute انتخاب کنید.
روی لینک Rate Card کلیک کنید. این کار پنجره Rate Card را باز میکند.

- یک ویژگی سفارشی را در منوی کشویی ویژگی سفارشی انتخاب کنید. این منو، ویژگیهای سفارشی ایجاد شده برای محصول در یک سیاست ثبت تراکنش را فهرست میکند. هزینه توسعهدهنده بر اساس مقدار ویژگی سفارشی انتخاب شده در هر تراکنش محاسبه میشود.
(ارزش ویژگی * نرخ = هزینه برای توسعهدهنده) - در صورت تمایل، همانطور که در جزئیات طرح کارت نرخ مشخص شده است، یک طرح فریمیوم تنظیم کنید.
- یک مدل شارژ را همانطور که در «جزئیات طرح کارت نرخ را مشخص کنید» توضیح داده شده است، تنظیم کنید. با این حال، توجه داشته باشید که برای نوع طرح نرخ کارت نرخ با ویژگی سفارشی، مدل شارژ بر اساس ویژگی سفارشی که انتخاب میکنید، تعیین میشود. به عنوان مثال، اگر «نرخ ثابت» را به عنوان مدل شارژ انتخاب کنید، از توسعهدهنده بر اساس ویژگی سفارشی، مانند تعداد بایتهای منتقل شده در هر تراکنش (نه یک نرخ ثابت برای هر تراکنش)، نرخ ثابتی دریافت میشود. برای اطلاعات بیشتر به «محاسبات » مراجعه کنید.
- روی ذخیره پیشنویس کلیک کنید.
طرح را فقط زمانی منتشر کنید که کاملاً از نهایی بودن آن مطمئن هستید. برای اطلاعات بیشتر در مورد تنظیم تاریخ انتشار و انتشار طرح، به بخش طرحهای نرخ انتشار مراجعه کنید.
برای اطلاعات بیشتر، به تعیین جزئیات طرح کارت نرخ با استفاده از رابط کاربری مراجعه کنید.
پیکربندی یک طرح اعلان قابل تنظیم با ویژگیهای سفارشی با استفاده از رابط کاربری
طرحهای اعلان قابل تنظیم را با ویژگیهای سفارشی، همانطور که در زیر توضیح داده شده است، پیکربندی کنید.لبه
برای پیکربندی طرح کارت نرخ با ویژگیهای سفارشی با استفاده از رابط کاربری Edge:
- هنگام افزودن یک محصول API، ویژگیهای سفارشی را تعریف کنید.
- یک بسته محصول API ایجاد کنید که شامل محصول باشد. به بخش ایجاد بستههای محصول API مراجعه کنید.
در سیاست ثبت تراکنش برای بسته محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده خواهند شد را اضافه کنید. برای جزئیات، به مقدمه در این مبحث و همچنین ایجاد یک سیاست ثبت تراکنش مراجعه کنید. - یک طرح نرخ برای بسته محصول API ایجاد کنید و یک پارامتر رتبهبندی سفارشی مشخص کنید.
برای اطلاعات بیشتر، به پیکربندی یک طرح اعلان قابل تنظیم با استفاده از رابط کاربری مراجعه کنید.
لبه کلاسیک (ابر خصوصی)
برای پیکربندی یک طرح کارت نرخ با ویژگیهای سفارشی با استفاده از رابط کاربری کلاسیک اج:
- در سیاست ثبت تراکنش یک محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده میشوند را اضافه کنید. برای جزئیات بیشتر، به مقدمه این مبحث و همچنین ایجاد یک سیاست ثبت تراکنش مراجعه کنید. این کار را برای هر محصول API که میخواهید در بسته API قرار دهید، انجام دهید.
- پس از اینکه محصولات API و سیاستهای ثبت تراکنش دقیقاً مطابق میل شما پیکربندی شدند، یک بسته API ایجاد کنید که شامل محصول باشد. به بخش ایجاد بستههای API مراجعه کنید.
- یک طرح نرخ برای بسته API ایجاد کنید و نوع طرح نرخ را « اعلان قابل تنظیم با ویژگی سفارشی» انتخاب کنید.
روی پیوند جزئیات کلیک کنید. این کار پنجره اعلانهای قابل تنظیم را باز میکند.

- یک ویژگی سفارشی را در منوی کشویی ویژگی سفارشی انتخاب کنید. این منو، ویژگیهای سفارشی ایجاد شده برای محصول در یک سیاست ثبت تراکنش را فهرست میکند. تعداد کل تراکنشهای توسعهدهنده بر اساس مقدار ویژگی سفارشی انتخاب شده در هر تراکنش محاسبه میشود.
- مبنای تجمیع را روی دوره زمانی که حجم تراکنشها تجمیع میشود تنظیم کنید. عددی بین ۱ تا ۲۴ ماه انتخاب کنید. این مقدار به طور پیشفرض ۱ ماه است.
- روی اعمال و بستن کلیک کنید.
- روی ذخیره پیشنویس کلیک کنید.
طرح را فقط زمانی منتشر کنید که کاملاً از نهایی بودن آن مطمئن هستید. برای اطلاعات بیشتر در مورد تنظیم تاریخ انتشار و انتشار طرح، به بخش طرحهای نرخ انتشار مراجعه کنید.
برای اطلاعات بیشتر، به تعیین جزئیات طرح اعلان قابل تنظیم با استفاده از رابط کاربری مراجعه کنید.
تعیین جزئیات برای یک طرح نرخ با ویژگیهای سفارشی با استفاده از API
مراحل پیش نیاز زیر را انجام دهید:
- در سیاست ثبت تراکنش یک محصول API، ویژگیهای سفارشی که برای تعریف طرحهای نرخ استفاده میشوند را اضافه کنید. برای جزئیات بیشتر، به مقدمه این مبحث و همچنین ایجاد یک سیاست ثبت تراکنش مراجعه کنید. این کار را برای هر محصول API که میخواهید در بسته API قرار دهید، انجام دهید.
- پس از اینکه محصولات API و سیاستهای ثبت تراکنش دقیقاً مطابق میل شما پیکربندی شدند، یک بسته API ایجاد کنید که شامل محصول باشد. به بخش ایجاد بستههای API مراجعه کنید.
در مرحله بعد، شما از API برای ایجاد طرح نرخ استفاده میکنید.
شما هنگام ایجاد طرح نرخ با ویژگیهای سفارشی، جزئیات مربوط به یک طرح نرخ را مشخص میکنید. شما جزئیات را در ویژگی ratePlanDetails در بدنه درخواست در فراخوانی /organizations/{org_name}/monetization-packages/{package_id}/rate-plans مشخص میکنید. در جزئیات، شما یک مقدار پارامتر رتبهبندی تعیین میکنید که نام ویژگی سفارشی را مشخص میکند. همچنین میتوانید یک مقدار پارامتر رتبهبندی تعیین کنید که ویژگی سفارشی را در یک بازه زمانی مشخص تجمیع کند.
برای مشاهده لیست کاملی از گزینههای جزئیات طرح نرخ، به تنظیمات پیکربندی جزئیات طرح نرخ مراجعه کنید.
برای مثال، کد زیر یک Rate Card با طرح Custom Attribute بر اساس یک ویژگی سفارشی به نام messageSize ایجاد میکند (به موارد پررنگ مراجعه کنید).
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "Custom attribute-based rate card plan",
"developer":null,
"developerCategory":null,
"currency": {
"id" : "usd"
},
"description": "Custom attribute-based rate card plan",
"displayName" : "Custom attribute-based rate card plan",
"frequencyDuration": "1",
"frequencyDurationType": "MONTH",
"earlyTerminationFee": "10",
"monetizationPackage": {
"id": "location"
},
"organization": {
"id": "{org_name}"
},
"paymentDueDays": "30",
"prorate": "false",
"published": "false",
"ratePlanDetails":[
{
"currency":{
"id":"usd"
},
"duration":1,
"durationType":"MONTH",
"meteringType":"VOLUME",
"paymentDueDays":"30",
"ratingParameter":"messageSize",
"ratingParameterUnit":"MB",
"organization":{
"id":"{org_name}"
},
"ratePlanRates":[
{
"rate":0.15,
"startUnit":0,
"type":"RATECARD",
"endUnit":1000
},
{
"rate":0.1,
"startUnit":1000,
"type":"RATECARD",
"endUnit":null
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"type":"RATECARD",
"customPaymentTerm":false
}
],
"freemiumUnit":0,
"freemiumDuration":0,
"freemiumDurationType":"MONTH",
"contractDuration":"1",
"contractDurationType":"YEAR",
"recurringStartUnit": 1,
"recurringType": "CALENDAR",
"recurringFee": "10",
"setUpFee": "10",
"startDate": "2013-09-15 00:00:00",
"type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password
کد زیر یک طرح اعلان قابل تنظیم با نرخ ویژگی سفارشی بر اساس یک ویژگی سفارشی به نام messageSize ایجاد میکند (به مورد پررنگ مراجعه کنید).
$ curl -H "Content-Type:application/json" -X POST -d \
'{
"name": "AdjustableNotification",
"displayName": "Custom attribute-based adjustable notification plan",
"description": "Custom attribute-based adjustable notification plan",
"published": "true",
"organization": {
"id": "myorg"
},
"startDate": "2016-04-15 00:00:00",
"type": "STANDARD",
"monetizationPackage": {
"id": "p1",
"name": "test"
},
"currency": {
"id" : "usd",
"name" : "USD"
},
"ratePlanDetails": [
{
"type": "USAGE_TARGET",
"meteringType": "DEV_SPECIFIC",
"duration": 1,
"durationType": "MONTH",
"ratingParameter": "messageSize",
"ratingParameterUnit": "MB",
"organization": {
"id": "myorg"
},
"currency": {
"id": "usd",
"name": "USD"
}
}
]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans" \
-u email:password