İşlem kaydetme politikasını yapılandırma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

API ürün paketinizdeki her API ürünü için işlem kaydetme politikalarını aşağıdaki bölümlerde açıklandığı şekilde yapılandırın.

Giriş

İşlem kaydetme politikası, para kazanmanın işlem parametrelerini ve özel özellikleri yakalamasını sağlar. Para kazanma özelliğinin, para kazanma süreçlerini (ör. ücret planları uygulama) gerçekleştirmesi için bu bilgilere ihtiyacı vardır.

Örneğin, bir gelir paylaşımı oranı planı ayarlarsanız para kazanılan API ürününüzü içeren her işlemden elde edilen gelirin bir yüzdesi, isteği gönderen uygulamanın geliştiricisiyle paylaşılır. Gelir paylaşımı, işlemin net veya brüt fiyatını (hangisini belirlersiniz) temel alır. Diğer bir deyişle, gelir paylaşımını belirlemek için her işlemin brüt veya net fiyatının yüzdesi kullanılır. Bu nedenle, para kazanma özelliğinin bir işlemin brüt veya net fiyatını bilmesi gerekir (uygun olduğu şekilde). Brüt veya net fiyatı, işlem kaydetme politikasında yaptığınız ayarlardan alır.

Her işlem için geliştiriciden ödeme aldığınız bir ücret listesi planı oluşturursanız planın ücretini, bir işlemde aktarılan bayt sayısı gibi özel bir özelliğe göre ayarlayabilirsiniz. Para kazanma özelliğinin, özel özelliğin ne olduğunu ve bu özelliği nerede bulacağını bilmesi gerekir. Bu nedenle, özel özelliği işlem kaydetme politikasında belirtmeniz gerekir.

İşlem kaydetme politikasında işlem özelliklerini belirtmenin yanı sıra bir işlemin ne zaman başarılı olduğunu belirlemek için (ödeme almak amacıyla) işlem başarı kriterleri de belirtebilirsiniz. İşlem başarı kriterlerini ayarlama örnekleri için İşlem kaydetme politikasında işlem başarı kriterlerini ayarlama örnekleri bölümüne bakın. Bir API ürünü için de özel özellikler belirtebilirsiniz (bunu temel ücret planı üzerinden ücretlendirirsiniz).

İşlem kaydetme politikasını yapılandırma

Aşağıda açıklandığı şekilde Ürün Paketleri sayfasına erişin.

Edge

Edge kullanıcı arayüzünü kullanarak bir API ürün paketi eklerken, aşağıdaki adımları uygulayarak işlem kaydetme politikasını yapılandırmanız gerekir:

  1. İşlem Kaydetme Politikası bölümünde yapılandırılacak API ürününü seçin (ürün paketinde birden fazla API ürünü varsa).
  2. İşlem özelliklerini yapılandırın.
  3. Özel özellikleri yapılandırın.
  4. Kaynakları benzersiz işlem kimliklerine bağlayın.
  5. Geri ödemeleri yapılandırma.
  6. API ürün paketinde tanımlanan her API ürünü için işlemi tekrarlayın.

Klasik Edge (Private Cloud)

Klasik Edge kullanıcı arayüzünü kullanarak işlem kaydetme politikası yapılandırmak için:

  1. http://ms-ip:9000 üzerinde oturum açın. Burada ms-ip, Yönetim Sunucusu düğümünün IP adresi veya DNS adıdır.
  2. Üst gezinme çubuğunda Yayınla > Ürünler'i seçin.
  3. Geçerli API ürününün satırında + İşlem Kayıt Politikası'nı tıklayın. Yeni İşlem Kaydı Politikası penceresi görüntülenir.
  4. Aşağıdaki adımları uygulayarak işlem kaydetme politikasını yapılandırın:
  5. Kaydet'i tıklayın.

İşlem özelliklerini yapılandırma

İşlem Özellikleri bölümünde, para kazanma işleminin başarılı olduğunu gösteren ölçütleri belirtin.

  1. İşlem Başarı Ölçütleri alanında, işlemin ne zaman başarılı olacağını (ödeme alma amacıyla) belirlemek için Durum özelliğinin (aşağıda açıklanmıştır) değerini temel alan ifadeyi belirtin. Başarılı olmayan (yani ifadedeki ölçütleri karşılamayan) işlemler kaydedilir ancak bunlara ücret planları uygulanmaz. Örneğin:

    txProviderStatus == 'OK'

  2. Status özelliği, İşlem Başarı Ölçütleri alanında yapılandırılan ifade tarafından kullanılan değeri içerir. Aşağıdaki alanları tanımlayarak Durum özelliğini yapılandırın:
    Alan Açıklama
    API Kaynağı API ürününde tanımlanan ve para kazanılan işlemleri tanımlamakta kullanılacak olan URI kalıpları.
    Yanıt Konumu Özelliğin belirtildiği yanıtın konumu. Geçerli değerler şunlardır: Flow Variable, Header, JSON Body ve XML Body.
    Değer Yanıtın değeri. Birden fazla değer belirtmek için + Ekle x öğesini tıklayın (örneğin, + Akış Değişkeni Ekle).
  3. İsteğe bağlı işlem özelliklerini yapılandırmak için İsteğe Bağlı Özellikleri Kullan açma/kapatma düğmesini etkinleştirin ve aşağıdaki tabloda tanımlanan işlem özelliklerinden herhangi birini yapılandırın.
    Özellik Açıklama
    Brüt fiyat

    Bu özellik yalnızca gelir paylaşımı modelinin kullanıldığı ücret planları için geçerlidir. Bu ücret planları için Brüt Fiyat veya Net Fiyat zorunludur. Sayısal değerin Dize türü olarak ifade edildiğinden emin olun. Bir işlemin brüt fiyatı. Gelir paylaşımı planları için Brüt Fiyat özelliğini veya Net Fiyat özelliğini kaydetmeniz gerekir. Hangi özelliğin gerekli olduğu, gelir paylaşımının temeline bağlıdır. Örneğin, bir işlemin brüt fiyatına dayanan bir gelir paylaşımı ücret planı oluşturabilirsiniz. Bu durumda, Brüt Fiyat alanı gereklidir.

    Net fiyat

    Bu özellik yalnızca gelir paylaşımı modelinin kullanıldığı ücret planları için geçerlidir. Bu ücret planları için Brüt Fiyat veya Net Fiyat zorunludur. Sayısal değerin Dize türü olarak ifade edildiğinden emin olun. Bir işlemin net fiyatı. Gelir paylaşımı planları için Net Fiyat alanını veya Brüt Fiyat alanını kaydetmeniz gerekir. Hangi alanın zorunlu olduğu, gelir paylaşımı temeline göre değişir. Örneğin, bir işlemin net fiyatını temel alan bir gelir paylaşımı ücret planı oluşturabilirsiniz. Bu durumda Net Fiyat alanı gerekir.

    Currency

    Bu özellik, gelir paylaşımı modelinin kullanıldığı ücret planları için gereklidir. İşlem için geçerli olan para biriminin türü.

    Hata Kodu

    İşlemle ilişkili hata kodu. Başarısız bir işlemle ilgili daha fazla bilgi sağlar.

    Öğe Açıklaması

    İşlemin açıklaması.

    Vergi

    Bu özellik yalnızca gelir paylaşımı modelleriyle ve yalnızca vergi tutarı API çağrılarında alındıysa geçerlidir. Sayısal değerin Dize türü olarak ifade edildiğinden emin olun. Satın alma işleminin vergi tutarı. Net fiyat artı vergi = brüt fiyat.

Örneğin, aşağıdaki değerler ayarlandığında para kazanma, akış değişkeninin değerini response.reason.phrase adlı bir değişkendeki mesaj yanıtından alır. Değer normalse ve API proxy ProxyEndpoint isteğine Para Kazanma Sınırları Kontrolü politikası eklenmişse para kazanma bunu bir işlem olarak sayar.

Alan Değer
İşlem Başarı Kriterleri txProviderStatus == 'OK'
Durum: API Kaynağı **
Durum: Yanıt Konumu Akış Değişkeni
Durum: Akış Değişkeni response.reason.phrase

Özel özellikleri yapılandırma

Özel Özellikler bölümünde, işlem kaydetme politikasına dahil edilecek özel özellikleri tanımlarsınız. Örneğin, her işlem için geliştiriciden ödeme aldığınız bir ücret listesi planı oluşturursanız planın ücretini bir işlemde aktarılan bayt sayısı gibi özel bir özelliğe göre ayarlayabilirsiniz. Daha sonra bu özel özelliği işlem kaydetme politikasına eklemeniz gerekir.

Bu özelliklerin her biri, sorgulayabileceğiniz işlem günlüğünde saklanır. Bu ücretler, bir ücret planı oluşturduğunuzda da gösterilir (Böylece, plan için geçerli ücreti baz almak için bu özelliklerden birini veya daha fazlasını seçebilirsiniz).

İşlem kaydı politikasında tanımlanan özel özellikleri, Gelir özeti raporlarına özel işlem özelliklerini ekleme konusunda açıklandığı gibi gelir özeti raporlarınıza ekleyebilirsiniz.

Özel özellikleri yapılandırmak için Özel Özellikleri Kullan açma/kapatma düğmesini etkinleştirin ve en fazla 10 özel özellik tanımlayın. İşlem kaydetme politikasına eklediğiniz her özel özellik için aşağıdaki bilgileri belirtmeniz gerekir.

Alan Açıklama
Özel Özellik Adı Özel özelliği açıklayan bir ad girin. Ücret planı özel bir özelliğe dayalıysa bu ad kullanıcıya ücret planı ayrıntılarında gösterilir. Örneğin, özel özellik süreyi yakalıyorsa özelliğe süre adını vermeniz gerekir. Özel özellik için gerçek birimler (saat, dakika veya saniye gibi), özel özellik ücret planı oluşturduğunuzda puan birimi alanında ayarlanır (Özel özellik ayrıntılarıyla ücret planı belirtme bölümüne bakın).
API Kaynağı İşlemde erişilen bir API kaynağının bir veya daha fazla URI son ekini (yani temel yolu izleyen URI parçası) seçin. Kullanılabilir kaynaklar, işlem özellikleriyle aynıdır.
Yanıt Konumu Yanıtta, özelliğin belirtildiği konumu seçin. Geçerli değerler şunlardır: Flow Variable, Header, JSON Body ve XML Body.
Değer Özel özellik için bir değer belirtin. Belirttiğiniz her değer, belirttiğiniz konumda özel özelliği sağlayan bir alana, parametreye veya içerik öğesine karşılık gelir. Birden fazla değer belirtmek için + Ekle x öğesini tıklayın (örneğin, + Akış Değişkeni Ekle).

Örneğin, İçerik Uzunluğu adlı bir özel özellik yapılandırır ve yanıt konumu olarak Başlık'ı seçerseniz, HTTP İçerik Uzunluğu alanında İçerik Uzunluğu değeri sağlanırsa değer olarak Content-Length değerini belirtirsiniz.

Bazı işlemler basittir ve bir kaynağa yapılan API çağrısını içerir. Ancak diğer işlemler daha karmaşık olabilir. Örneğin, mobil oyun uygulamasında uygulama içi ürün satın almaya yönelik bir işlemde birden fazla kaynak çağrısı olduğunu varsayalım:

  • Ön ödemeli kullanıcının ürünü satın almak için yeterli krediye sahip olmasını sağlayan ve satın alma işlemi için ayrılan tutarı tahsis eden ("rezerve") bir Reserve API çağrısı.
  • Ön ödemeli kullanıcının hesabından parayı düşen bir ödeme API'sine yapılan çağrı.

Para kazanma özelliğinin, işlemin tamamını işlemek için ilk kaynağı (rezervasyon API'sine yapılan çağrı ve yanıt) ikinci kaynakla (çağrı ve ücret API'sinden yanıt alma) bağlamanın bir yolunun bulunması gerekir. Bunu yapmak için Kaynakları Benzersiz İşlem Kimliğiyle Bağlama bölümünde belirttiğiniz bilgilere dayanır.

Özel özellikleri yapılandırmak için Benzersiz İşlem Kimlikleri Kullan açma/kapatma düğmesini etkinleştirin ve işlemleri bağlayın. Her işlem için diğer işlemlerdeki karşılık gelen değerlerle bağlantılı bir kaynak, yanıt konumu ve özellik değeri belirtirsiniz.

Örneğin, Reserve API çağrısı ile Charge API çağrısının şu şekilde bağlandığını varsayalım: Reserve API'nin yanıt başlığındaki session_id adlı bir alan, Charge API'den reference_id adlı bir yanıt başlığına karşılık gelir. Bu durumda, Kaynakları Benzersiz İşlem Kimliğiyle Bağla bölümündeki girişleri aşağıdaki gibi ayarlayabilirsiniz:

Kaynak Yanıt konumu Değer
reserve/{id}**

Başlık

session_id
/charge/{id}**

Başlık

reference_id

Geri ödemeleri yapılandırma

Geri ödemeler bölümünde, para kazanma özelliğinin geri ödemeleri işlemek için kullandığı özellikleri belirtirsiniz.

Örneğin, bir kullanıcının para kazandıran API'lerinizi kullanan bir mobil uygulamadan ürün satın aldığını varsayalım. İşlemden, paylaşılan gelir planına göre para kazanılır. Ancak, kullanıcının üründen memnun olmadığını ve ürünü iade etmek istediğini varsayalım. API'nize yapılan bir geri ödemeyi çağrıştırarak ürün için geri ödeme yapılırsa gerekli para kazanma düzenlemeleri para kazanma özelliğinde yapılır. Bunu, işlem kayıt politikasının Geri Ödemeler bölümünde belirttiğiniz bilgileri temel alarak yapar.

Geri ödemeleri yapılandırmak için Geri Ödeme Özelliklerini Kullan açma/kapatma düğmesini etkinleştirin ve geri ödeme ayrıntılarını tanımlayın:

  1. Aşağıdaki alanları tanımlayarak geri ödeme ölçütlerini tanımlayın:
    Alan Açıklama
    Yanıt Konumu Geri ödeme işleminin kaynağı. API ürünü birden fazla kaynak sağlıyorsa yalnızca geri ödemeyi gerçekleştiren kaynağı seçebilirsiniz.
    Geri Ödeme Başarılı Kriterleri Geri ödeme işleminin ne zaman başarılı olduğunu belirlemek için (ödeme alma amacıyla) Durum özelliğinin (aşağıda açıklanmıştır) değerine dayalı ifade. Başarılı olmayan (yani ifadedeki ölçütleri karşılamayan) geri ödeme işlemleri kaydedilir ancak ücret planları bunlara uygulanmaz. Örneğin:

    txProviderStatus == 'OK'

  2. Aşağıdaki alanları tanımlayarak Durum özelliğini yapılandırın:
    Alan Açıklama
    Yanıt Konumu Özelliğin belirtildiği yanıtın konumu. Geçerli değerler şunlardır: Flow Variable, Header, JSON Body ve XML Body.
    Değer Yanıtın değeri. Birden fazla değer belirtmek için + Ekle x öğesini tıklayın (örneğin, + Akış Değişkeni Ekle).
  3. Aşağıdaki alanları tanımlayarak Üst Öğe Kimliği özelliğini yapılandırın:
    Alan Açıklama
    Yanıt Konumu Özelliğin belirtildiği yanıtın konumu. Geçerli değerler şunlardır: Flow Variable, Header, JSON Body ve XML Body.
    Değer Geri ödemenin işlendiği işlemin kimliği. Örneğin, bir kullanıcı bir ürün satın alır ve daha sonra geri ödeme isteğinde bulunursa Üst İşlem Kimliği, satın alma işleminin kimliğidir. Birden fazla değer belirtmek için + Ekle x öğesini tıklayın (örneğin, + Akış Değişkeni Ekle).
  4. İsteğe bağlı geri ödeme özelliklerini yapılandırmak için İsteğe Bağlı Geri Ödeme Özelliklerini Kullan açma/kapatma düğmesini etkinleştirin ve özellikleri yapılandırın. İsteğe bağlı geri ödeme özellikleri, İşlem özelliklerini yapılandırma bölümünde tanımlandığı şekilde isteğe bağlı işlem özellikleriyle aynıdır.

API'yi kullanarak işlem kaydetme politikalarını yönetme

Aşağıdaki bölümlerde, API'yi kullanarak işlem kaydetme politikalarının nasıl yönetileceği açıklanmaktadır.

API'yi kullanarak işlem kaydetme politikası oluşturma

Bir API ürününün özelliği olarak işlem kayıt politikası belirtirsiniz. Özelliğin değeri şunları tanımlar:

  • İşlem kaydetme politikasının eklendiği ürün kaynağının URI son eki. Sonek, süslü ayraçlar içine alınmış bir kalıp değişkeni içerir. Kalıp değişkeni, çalışma zamanında API Hizmetleri tarafından değerlendirilir. Örneğin, aşağıdaki URI son eki {id} kalıp değişkenini içerir.
    /reserve/{id}**
    

    Bu durumda API Hizmetleri, kaynağın URI son ekini /reserve ve ardından API sağlayıcısı tarafından tanımlanan bir kimlikle başlayan alt dizinleri değerlendirir.

  • Ekli olduğu yanıttaki kaynak. Bir API ürününün birden çok kaynağı olabilir ve her kaynak, söz konusu kaynaktan gelen yanıta eklenmiş bir işlem kaydetme politikasına sahip olabilir.
  • İşlem kaydetme politikasının, yakalamak istediğiniz işlem parametreleri için yanıt mesajındaki içeriği çıkarmasını sağlayan bir değişken ayıklama politikasıdır.

İşlem kaydetme politikası özelliğini, Management API'sine https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (para kazanma API'sine değil) PUT isteği göndererek bir API ürününe eklersiniz.

API'yi kullanarak işlem başarısı kriterlerini belirtme

Bir işlemin ne zaman başarılı olduğunu belirlemek için (ödeme alma amacıyla) işlem başarı kriterleri belirtebilirsiniz. Başarılı olmayan (yani ifadedeki ölçütleri karşılayan) işlemler kaydedilir ancak bunlara ücret planları uygulanmaz. İşlem başarı kriterlerini ayarlama örnekleri için İşlem kaydetme politikasında işlem başarı kriterleri belirleme örnekleri bölümüne bakın.

İşlem başarı ölçütlerini bir API ürününün özelliği olarak belirtirsiniz. Bunu https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} yönetim API'sine (para kazanma API'sine değil) bir PUT isteği göndererek yapın.

Örneğin, aşağıdaki istekte txProviderStatus değeri success ise (işlem başarı kriterleriyle ilgili özellikler vurgulanmıştır) bir işlem başarılı olur.

$ curl -H "Content-Type: application/json" -X PUT -d \ 
'{
        "apiResources": [
        "/reserve/{id}**"       
        ],
        "approvalType": "auto",
        "attributes": [                         
        {
                "name": "MINT_TRANSACTION_SUCCESS_CRITERIA",
                "value": "txProviderStatus == 'OK'"
        }
        ],
        "description": "Payment",
        "displayName": "Payment",
        "environments": [
        "dev"
        ],
        "name": "payment",
        "proxies": [],
        "scopes": [
        ""
        ]
}' \
"https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \
-u email:password

API'yi kullanarak özel özellikler belirtme

Ücret planı ödemelerini temel aldığınız bir API ürünü için özel özellikler belirtebilirsiniz. Örneğin, her işlem için geliştiriciden ödeme alacağınız bir ücret listesi planı oluşturursanız planın ücretini bir işlemde iletilen bayt sayısı gibi özel bir özelliğe göre ayarlayabilirsiniz. Bir ücret planı oluşturduğunuzda, plan için geçerli ücreti dayandıracağınız bir veya daha fazla özel özellik belirtebilirsiniz. Ancak ücret planındaki belirli bir ürün, planın ücretini dayandırmak için yalnızca bir özel özelliğe sahip olabilir.

Özel özellikleri bir API ürününün özellikleri olarak belirtirsiniz. Bunu, para kazanma API'sine değil, https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} Management API'sine bir PUT isteği göndererek yapın.

Bir API ürününe eklediğiniz her özel özellik için bir ad ve özellik değeri belirtmeniz gerekir. Ad, MINT_CUSTOM_ATTRIBUTE_{num} biçiminde olmalıdır; burada {num} bir tam sayıdır.

Örneğin, aşağıdaki istek üç özel özellik belirtir.

$ curl -H "Content-Type: application/json" -X PUT -d \
'{
        "apiResources": [
        "/reserve/{id}**",
        "/charge/{id}**"
        ],
        "approvalType": "auto",
        "attributes": [
        {
                "name": "MINT_CUSTOM_ATTRIBUTE_1",
                "value": "test1"
        },
        {
                "name": "MINT_CUSTOM_ATTRIBUTE_2",
                "value": "test2"
        }
 
        ],
        "name": "payment",
        "proxies": [],
        "scopes": [
                ""
        ]
}' \
"https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \
-u email:password

İşlem kaydetme politikasında işlem başarı kriterlerini belirleme örnekleri

Aşağıdaki tabloda, işlem başarı ölçütü ifadesi ve API proxy'si tarafından döndürülen txProviderStatus değeri temel alınarak başarılı ve başarısız işlem örnekleri verilmiştir. txProviderStatus, para kazanma özelliğinin işlemin başarısını belirlemek için kullandığı dahili değişkendir.

Başarı ölçütü ifadesi Geçerli ifade geçerli mi? API proxy'sinden txProviderStatus değeri Değerlendirme sonucu
null true "200" false
"" false "200" false
" " false "200" false
"sdfsdfsdf" false "200" false
"txProviderStatus =='100'" true "200" false
"txProviderStatus =='200'" true "200" true
"true" true "200" true
"txProviderStatus=='OK' OR
txProviderStatus=='Not Found' OR
txProviderStatus=='Bad Request'"
true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Not Found" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "bad request" true
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Redirect" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "heeeelllooo" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus == 100" true "200" false