assistance-engine/docs/developer.avapframework.com/68_servicio_Servicio_de_Fir...

5.1 KiB

This service is used to approve several operations within the system.

POST: URL_BASE + /ws/firma.py/firmar

Receives:

All the parameters that the service receives must be indicated in the body of the request.

Returns:

Depending on the result of the operation, this service can return two different JSON:

Answer JSON OK:

{
         "status"
        :{' '}
        true
        ,
         "signed"
        : <boolean>
        ,
         "invoice"
        : <integer>
        ,
         "currency_data"
        :{' '}
        {
         "abbreviation"
        : <string>
        ,
         "suffix"
        : <string>
        ,
         "format"
        : <string>
        ,
         "symbol"
        : <string>
        ,
         "prefix"
        : <string>
        ,
         "decimals"
        : <decimal>
        ,
         "id"
        : <integer>
         }
        ,
         "elapsed"
        : <float>
        ,
         "raw_amount"
        : <decimal>
        ,
         "currency"
        : <string>
        ,
         "commission_user_card"
        : <decimal>
        ,
         "codtran"
        : <string>
        ,
         "user_commission"
        : <decimal>
        ,
         "amount"
        : <string>
         }

Where:

  • status: Shows if the call has been successful (true) or not (false).
  • signed: Shows if the signature has been successfully processed (true) or not (false).
  • invoice: Invoice number associated to the operation.
  • currency_data: Contains the different details of the currency used in the operation.
  • abbreviation: The abbreviated name of the currency (EUR, MXN).
  • suffix: Indicates the suffix that is applied in the currency format (pesos, euros).
  • format: The full format that is applied to the currency, it includes the suffix and the prefix.
  • symbol: The symbol associated to the currency (€, ¢, $).
  • prefix: The prefix that is applied in the format of the currency.
  • decimals: The maximum number of decimal places to be included in the currency format.
  • id: Currency identifier in BBDD.
  • elapsed: Execution operation time.
  • raw_amount: Amount of the operation in negative without applying the format.
  • currency: Short name of the currency used in the operation, it matches the abbreviation.
  • commission_user_card: Commission that would be applied if the payment is made by card.
  • codtran: Transaction code that identifies the executed operation.
  • user_commission: Commission to be charged to the user.
  • amount: Negative transaction amount with the applied format.

Answer JSON KO:

{
         "status"
        :{' '}
        false
        ,
         "level"
        : <string>
        ,
         "message"
        : <string>
        ,
         "error"
        : <string>
         }

Where:

  • status: Shows if the call has been successful (true) or not (false).
  • level: Error importance level.
  • message: Error message.
  • error: Sole error coge.

Example requests:

Python - Requests:

import requests
         url ={' '}
        "URL_BASE/ws/firma.py/firmar"
         payload ={' '}
        {
         'otp'
        :{' '}
        '1234'
        ,
         'phone'
        :{' '}
        '7229063245'
        ,
         'country_code'
        :{' '}
        'MX'
        }
         files ={' '}
        [
        ]
         headers={' '}
        {
        }
         response = requests
        .request
        (
        "POST"
        , url
        , headers
        =headers
        , data{' '}
        = payload
        , files{' '}
        = files
        )
         print
        (response
        .text
        .encode
        (
        'utf8'
        )
        )

NodeJs - Request:

var request = require('request');
         var options = {
         'method': 'POST',
         'url': 'URL_BASE/ws/firma.py/firmar',
         'headers': {},
         formData: {
         'otp': '1234',
         'phone_dst': '7229063245',
         'country_code': 'MX'
         }
         };
         request(options, function (error, response) {{' '}
         if (error) throw new Error(error);
         console.log(response.body);
         });

JavaScript - Fetch:

var formdata = new FormData();
         formdata.append("otp", "1234");
         formdata.append("phone_dst", "7229063245");
         formdata.append("country_code", "MX");
         var requestOptions = {
         method: 'POST',
         body: formdata,
         redirect: 'follow'
         };
         fetch("URL_BASE/ws/firma.py/firmar", requestOptions)
         .then(response => response.text())
         .then(result => console.log(result))
         .catch(error => console.log('error', error));

CURL:

curl --location --request POST{' '}
        'URL_BASE/ws/firma.py/firmar'{' '}
        \
         --form 'otp=1234'{' '}
        \
         --form{' '}
        'phone_dst=7229063245'{' '}
        \
         --form 'country_code=MX'

Business logic:

This service searches for the operations pending signing that the entered phone has, and, among the results, accepts the operation through the OTP.