Configurar uma política de gravação de transações

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Configure políticas de registro de transações para cada produto de API no pacote de produtos da API, conforme descrito nas seções a seguir.

Introdução

Uma política de gravação de transações permite que a monetização capture parâmetros de transação e atributos personalizados. A monetização precisa dessas informações para processar o processo de monetização como a aplicação de planos de tarifas.

Por exemplo, se você configurar um plano de divisão da receita, da receita gerada em cada transação envolvendo seu produto de API monetizado é compartilhada com o desenvolvedor do aplicativo que emite a solicitação. A participação na receita é baseada no valor líquido ou bruto preço da transação (você especifica qual), ou seja, uma porcentagem do preço bruto ou líquido de cada transação é usado para determinar a participação na receita. Por isso, a monetização precisa saber o preço bruto ou líquido de uma transação, conforme aplicável. Ela mostra o preço bruto ou líquido com base nas configurações definidas na política de gravação de transações.

Se você configurar uma tabela de preços em que você cobra o desenvolvedor por cada transação, é possível definir a taxa do plano com base em um atributo personalizado, como o número de bytes transmitidos em uma transação. A monetização precisa saber o que é o atributo personalizado e onde ele está. Então você precisa especificar o atributo personalizado na política de registro de transações.

Além de especificar atributos da transação na política de gravação de transações, é possível especificar critérios de sucesso da transação para determinar quando uma transação foi bem-sucedida (por para fins de cobrança). Para ver exemplos de definição de critérios de sucesso da transação, consulte Exemplos da definição de critérios de sucesso da transação em um registro de transação. política. Também é possível especificar atributos personalizados para um produto da API (na qual você define e cobranças do plano de serviço).

Como configurar uma política de registro de transações

Acesse a página "Pacotes de produtos", conforme descrito abaixo.

Edge

Ao adicionar um pacote de produtos de API usando a interface do Edge, você precisa configurar a política de gravação de transações executando as seguintes etapas:

  1. Selecione o produto de API a ser configurado na seção Política de registro de transações (se houver vários produtos de API no pacote de produtos).
  2. Configurar atributos de transação.
  3. Configurar atributos personalizados.
  4. Vincular recursos com IDs de transação exclusivos.
  5. Configurar reembolsos
  6. Repita o procedimento para cada produto de API definido no pacote de produtos da API.

Edge clássico (nuvem privada)

Para configurar uma política de gravação de transações usando a IU clássica do Edge:

  1. Faça login em http://ms-ip:9000, em que ms-ip é o endereço IP ou o nome DNS do nó do servidor de gerenciamento.
  2. Selecione Publicar > Produtos na barra de navegação superior.
  3. Clique em + Política de registro de transações na linha da API aplicável. produto. A janela "Nova política de gravação de transações" será exibida.
  4. Configure a política de gravação de transações seguindo estas etapas:
  5. Clique em Salvar.

Configurar atributos de transação

Na seção Atributos da transação, especifique os critérios que indicam uma transação de monetização bem-sucedida.

  1. No campo Critérios de sucesso da transação, especifique a expressão com base no valor do atributo "Status". (descrito a seguir) para determinar quando a transação foi bem-sucedida (para fins de cobrança). Transações que não foram concluídas (ou seja, eles não atendem aos critérios na expressão) são registrados, mas os planos de tarifas não são aplicados a eles. Exemplo:

    txProviderStatus == 'OK'

  2. O atributo Status contém o valor usado pela expressão configurada em no campo Critérios de sucesso da transação. Configure o atributo Status definindo os seguintes campos:
    Campo Descrição
    Recurso da API Padrões de URI definidos no produto da API que serão usados para identificar transações monetizadas.
    Local da resposta Local da resposta em que o atributo é especificado. Os valores válidos incluem: variável de fluxo, cabeçalho, corpo JSON e corpo do XML.
    Valor Valor da resposta. Para especificar mais de um valor, clique em + Adicionar x (por exemplo, + Adicionar variável de fluxo).
  3. Para configurar atributos de transação opcionais, ative a opção Usar atributos opcionais e configure qualquer um dos atributos de transação definidos na tabela a seguir.
    Atributo Descrição
    Preço bruto

    Esse atributo é aplicável apenas a planos de tarifas que usam o modelo de participação na receita. Para esses planos de tarifas, é obrigatório definir o Preço bruto ou o Preço líquido. Assegure-se de que O valor numérico é expresso como um tipo de string. Preço bruto de uma transação. Para de participação na receita, registre o atributo "Preço bruto" ou o "Preço líquido" . O atributo necessário depende da base da participação na receita. Para exemplo, é possível configurar um plano de tarifação de participação na receita com base no preço bruto de transação. Nesse caso, o campo "Preço bruto" é obrigatório.

    Preço líquido

    Esse atributo é aplicável apenas a planos de tarifas que usam o modelo de participação na receita. Para esses planos de tarifas, é obrigatório definir o Preço bruto ou o Preço líquido. Assegure-se de que O valor numérico é expresso como um tipo de string. Preço líquido de uma transação. Para dos planos de participação na receita, é preciso registrar o campo Preço líquido . O campo obrigatório depende da base da participação na receita. Por exemplo: é possível definir um plano de taxa de participação na receita com base no preço líquido de uma transação. Nesse caso, o campo Preço líquido é obrigatório.

    Moeda

    Esse atributo é obrigatório para planos de tarifas que usam o modelo de participação na receita. Tipo de moeda que se aplica à transação.

    Código do erro

    Código do erro associado à transação. Ele oferece mais informações sobre uma transação com falha.

    Descrição do item

    Descrição da transação.

    Tributo

    Este atributo é relevante somente para modelos de participação na receita e apenas se o valor dos tributos é capturado nas chamadas de API. Verifique se o valor numérico é expresso como um tipo String. Valor do tributo sobre a compra. Preço líquido mais tributos = preço bruto.

Por exemplo, ao definir os valores a seguir, a monetização obtém o valor da variável de fluxo da resposta da mensagem em uma chamada response.reason.phrase. Se o valor for OK e a política de verificação de limites de monetização é anexada à solicitação do proxy da API ProxyEndpoint, a monetização conta isso como uma transação.

Campo Valor
Critérios de sucesso da transação txProviderStatus == 'OK'
Status: recurso da API **
Status: local da resposta Variável de fluxo
Status: variável de fluxo response.reason.phrase

Configurar atributos personalizados

Na seção Atributos personalizados, você identifica os atributos personalizados a serem incluídos no política de gravação de transações. Por exemplo, se você configurar um plano de tabela de preços, em que você cobra do desenvolvedor por cada transação, defina a taxa para o plano com base em um atributo personalizado, como o número de bytes transmitidos em uma transação. Depois, você precisa incluir esse atributo personalizado no política de gravação de transações.

Cada um desses atributos é armazenado no registro de transações, que você pode consultar. Eles também são exibido quando você cria um plano de tarifação (para que você possa escolher um ou mais desses atributos que servirá de base para o preço do plano).

Você pode incluir na sua receita atributos personalizados definidos na política de registro de transações relatórios de resumo, conforme descrito em Inclusão de transação personalizada atributos nos relatórios de resumo da receita.

Para configurar atributos personalizados, ative a opção Usar atributos personalizados e defina até 10 atributos personalizados. Para cada atributo personalizado incluído na política de gravação de transações, especifique as informações a seguir.

Campo Descrição
Nome do atributo personalizado Insira um nome que descreva o atributo personalizado. Se o plano de tarifas tiver como base um atributo personalizado, esse nome é exibido ao usuário nos detalhes do plano de tarifa. Por exemplo, se o atributo personalizado captura a duração, nomeie a duração do atributo. As unidades reais do atributo personalizado (como horas, minutos ou segundos) são definidas no campo de unidade de avaliação. quando você cria um plano de tarifas de atributos personalizados Consulte Especificar o plano de tarifas com detalhes de atributos personalizados.
Recurso da API Selecione um ou mais sufixos de URI (ou seja, o fragmento de URI após o caminho base) de um recurso de API acessado na transação. Os recursos disponíveis são os mesmos dos atributos de transação.
Local da resposta Selecione o local na resposta em que o atributo é especificado. Os valores válidos incluem: variável de fluxo, cabeçalho, corpo JSON e corpo do XML.
Valor Especifique um valor para o atributo personalizado. Cada valor especificado corresponde a um campo, parâmetro ou o elemento de conteúdo que fornece o atributo personalizado no local que você especificou. Para especificar mais de um valor, clique em + Adicionar x (por exemplo, + Adicionar variável de fluxo).

Por exemplo, se você configurar um atributo personalizado chamado Tamanho do conteúdo e selecionar Cabeçalho como o local da resposta, Se o valor de "Comprimento do conteúdo" for fornecido no campo "Comprimento de conteúdo HTTP", especifique Content-Length como o valor.

Algumas transações são simples e envolvem uma chamada de API para um recurso. No entanto, outros transações podem ser mais complexas. Por exemplo, suponha que uma transação para comprar um produto em um aplicativo de jogo para dispositivos móveis envolve várias chamadas de recursos:

  • Uma chamada para uma API de reserva que garante que um usuário pré-pago tenha crédito suficiente para comprar o e aloca ("reserva") os fundos para a compra.
  • Uma chamada para uma API de cobrança que deduz os fundos da conta do usuário pré-pago.

Para processar toda a transação, a monetização precisa de uma forma de vincular o primeiro recurso (o chamada e resposta para e da API de reserva) com o segundo recurso (a chamada e a resposta para e da API Charge). Para fazer isso, ele se baseia nas informações que você especifica no Seção Vincular recursos com ID exclusivo da transação.

Para configurar atributos personalizados, ative a opção Usar códigos exclusivos de transação e vincule as transações. Para cada transação, você especifica um recurso, um local de resposta e um valor de atributo vinculado aos valores correspondentes no outro transações.

Por exemplo, suponha que a chamada de API de reserva e a chamada de API de cobrança estejam vinculadas da seguinte maneira: um um campo chamado session_id no cabeçalho de resposta da API de reserva corresponde a uma cabeçalho de resposta chamado reference_id da API de cobrança. Nesse caso, é possível definir as entradas na seção "Vincular recursos com código exclusivo da transação" da seguinte forma:

Recurso Local da resposta Valor
reserve/{id}**

Cabeçalho

session_id
/charge/{id}**

Cabeçalho

reference_id

Como configurar reembolsos

Na seção Reembolsos, você especifica os atributos que para processar reembolsos.

Por exemplo, suponha que um usuário compre um produto de um app para dispositivos móveis que usa suas APIs monetizadas. A transação gera receita com base no plano de receita. No entanto, suponha que o usuário esteja insatisfeito com o produto e queira devolvê-lo. Se o produto é reembolsado usando uma chamada para sua API que faz o reembolso, a monetização torna o os ajustes necessários de monetização. Ele faz isso com base nas informações que você especifica no Seção de reembolsos da política de registro de transações.

Para configurar reembolsos, ative a opção Usar atributos de reembolso e defina os detalhes do reembolso:

  1. Defina os critérios de reembolso definindo os seguintes campos:
    Campo Descrição
    Local da resposta Recurso para a transação de reembolso. Se o produto de API fornecer vários recursos, selecione apenas aquele que realiza o reembolso.
    Critérios de sucesso do reembolso Expressão baseada no valor de o atributo Status (descrito a seguir) para determinar quando a transação de reembolso foi bem-sucedida (para cobrança ). Reembolsar transações que não foram bem-sucedidas (ou seja, não atendem aos critérios no expressão) são registrados, mas os planos de tarifas não são aplicados a eles. Exemplo:

    txProviderStatus == 'OK'

  2. Configure o atributo Status definindo os seguintes campos:
    Campo Descrição
    Local da resposta Local da resposta em que o atributo é especificado. Os valores válidos incluem: variável de fluxo, cabeçalho, corpo JSON e corpo do XML.
    Valor Valor da resposta. Para especificar mais de um valor, clique em + Adicionar x (por exemplo, + Adicionar variável de fluxo).
  3. Configure o atributo Parent ID definindo os seguintes campos:
    Campo Descrição
    Local da resposta Local da resposta em que o atributo é especificado. Os valores válidos incluem: variável de fluxo, cabeçalho, corpo JSON e corpo do XML.
    Valor ID da transação em que um reembolso é processado. Por exemplo, se um usuário compra um produto e depois solicita um reembolso, o O ID da transação pai é o ID da transação de compra. Para especificar mais de um valor, clique em + Adicionar x (por exemplo, + Adicionar variável de fluxo).
  4. Para configurar atributos opcionais de reembolso, ative a opção Usar atributos opcionais de reembolso e configure os atributos. Os atributos opcionais de reembolso são os mesmos que os atributos de transação opcionais, conforme definido em Como configurar atributos de transação.

Como gerenciar políticas de registro de transações usando a API

As seções a seguir descrevem como gerenciar políticas de registro de transações usando a API.

Criar uma política de gravação de transações usando a API

Você especifica uma política de gravação de transações como um atributo de um produto da API. O valor do parâmetro identifica:

  • O sufixo do URI do recurso do produto relacionado à política de registro de transações anexado. O sufixo inclui uma variável de padrão entre chaves. O padrão é avaliada pelos serviços da API no ambiente de execução. Por exemplo, o seguinte sufixo de URI inclui a variável de padrão {id}.
    /reserve/{id}**
    

    Nesse caso, os serviços de API avaliam o sufixo do URI do recurso como /reserve seguido por qualquer subdiretório que comece com um ID definido pela API de nuvem.

  • O recurso na resposta a que está anexado. Um produto de API pode ter várias cada um deles pode ter uma política de registro de transações anexada a uma resposta esse recurso.
  • Uma política de variável de extração que permite que a política de gravação da transação extraia conteúdo de uma mensagem de resposta para os parâmetros de transação que você quer capturar.
.

Você adiciona o atributo da política de gravação de transações a um produto da API emitindo uma solicitação PUT à API de gerenciamento https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (e não a uma API de monetização).

Especificar critérios de sucesso da transação usando a API

É possível especificar critérios de sucesso da transação para determinar quando uma transação foi bem-sucedida. (para fins de carregamento). Transações que não foram bem-sucedidas (ou seja, atendem aos critérios na expressão) são registrados, mas os planos de tarifas não são aplicados a eles. Para exemplos de configuração critérios de sucesso da transação, consulte Exemplos de definição de critérios de sucesso da transação em uma política de registro de transações.

Você especifica os critérios de sucesso da transação como um atributo de um produto de API. Faça isso até emitir uma solicitação PUT para a API de gerenciamento https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (e não para a API de monetização).

Por exemplo, na solicitação a seguir, uma transação é bem-sucedida se o valor de txProviderStatus é success (o critério de sucesso da transação relacionado as especificações estão destacadas).

$ 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

Especificar atributos personalizados usando a API

É possível especificar atributos personalizados para um produto de API que receberá cobranças do plano de taxa básica. Para exemplo, se você configurar um plano de tabela de preços em que cobra o desenvolvedor por cada transação, É possível definir a taxa do plano com base em um atributo personalizado, como o número de bytes transmitidos em uma transação. Ao criar um plano de tarifas, é possível especificar um ou mais atributos personalizados como base para a taxa do plano. No entanto, qualquer produto específico em um plano de preços só pode ter um atributo personalizado no qual basear a taxa para o plano.

Você especifica atributos personalizados como atributos de um produto da API. Faça isso emitindo um comando PUT uma solicitação para a API de gerenciamento https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (e não para a API de monetização).

Para cada atributo personalizado que você adicionar a um produto da API, será necessário especificar um nome e um . O nome precisa estar no formato MINT_CUSTOM_ATTRIBUTE_{num}, em que {num} é um número inteiro.

Por exemplo, a solicitação a seguir especifica três atributos personalizados.

$ 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

Exemplos de definição de critérios de sucesso em uma transação política de gravação

A tabela a seguir fornece exemplos de transações bem-sucedidas e malsucedidas com base em a expressão de critérios de sucesso da transação e o valor txProviderStatus retornado; pelo proxy de API. txProviderStatus é a variável interna usada pela monetização para determinar o sucesso da transação.

Expressão de critérios de sucesso Expressão válida? Valor de txProviderStatus do proxy de API Resultado da avaliação
null verdadeiro "200" falso
"" falso "200" falso
" " falso "200" falso
"sdfsdfsdf" falso "200" falso
"txProviderStatus =='100'" verdadeiro "200" falso
"txProviderStatus =='200'" verdadeiro "200" verdadeiro
"true" verdadeiro "200" verdadeiro
"txProviderStatus=='OK' OR
txProviderStatus=='Not Found' OR
txProviderStatus=='Bad Request'"
verdadeiro "OK" verdadeiro
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" verdadeiro "OK" verdadeiro
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" verdadeiro "Not Found" verdadeiro
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" verdadeiro "Bad Request" verdadeiro
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro "Bad Request" verdadeiro
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro null falso
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro "bad request" verdadeiro
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro "Redirect" falso
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro "heeeelllooo" falso
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" verdadeiro null falso
"txProviderStatus == 100" verdadeiro "200" falso