Cargos permanentes

En este segmento encontrarás cómo integrar dentro de tu modelo de negocio la opción para cargos periódicos como membresias y suscripciones.

Debes crear la lógica de calendario en tu sistema, así como los siguientes pasos para el cargo periódico a las tarjetas.

Pasos

1. Crear un customer_id.
2. Tokenizar la tarjeta con nuestras Librerías de Tokenización.
3. Asociar la tarjeta al cus_id creado en el paso 1.
4. Realizar el cargo al nuevo token.

1. Crear un customer_id.

POST  Customer Create

https://sandbox-api.srpago.com/v1/customer

headers

AuthorizationBasic

Content-Typeapplication/json

body

{"name":"here the name2","email":"[email protected]","metadata":{"algo":"value"}}

Example Request

  curl --location --request POST "https://sandbox-api.srpago.com/v1/customer" \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic " \
  --data "{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}"
var settings = {
  "url": "https://sandbox-api.srpago.com/v1/customer",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json"
  },
  "data": "{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}",
};
$.ajax(settings).done(function (response) {
  console.log(response);
});
require "uri"
require "net/http"

url = URI("https://sandbox-api.srpago.com/v1/customer")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic "
request.body = "{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}"

response = http.request(request)
puts response.read_body
import requests
url = 'https://sandbox-api.srpago.com/v1/customer'
payload = "{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic '
}
response = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False, timeout=undefined, allow_redirects=false)
print(response.text)
var https = require('https');

var options = {
  'method': 'POST',
  'hostname': 'https://sandbox-api.srpago.com',
  'path': '/v1/customer',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic <credentials'
  }
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData =  "{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}";

req.write(postData);

req.end();

package main

import (
  "fmt"
  "strings"
  "os"
  "path/filepath"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://sandbox-api.srpago.com/v1/customer"
  method := "POST"

  payload := strings.NewReader("{\"name\":\"here the name2\",\"email\":\"[email protected]\",\"metadata\":{\"algo\":\"value\"}}")

  client := &http.Client {
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
      return http.ErrUseLastResponse
    },
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Basic ")

  res, err := client.Do(req)
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}

Example Response

{
  "success": true,
  "result": {
    "id": "cus_5f7b769b43b3e",
    "name": "here the name2",
    "email": "[email protected]",
    "active": 1,
    "date_create": "2020-10-05T14:40:11-05:00",
    "sources": [],
    "cards": [],
    "metadata": {
      "algo": "value"
    },
    "deactivated_cards": 0
  }
}

2. Tokenizar tarjeta

Utiliza nuestra librería JS para la Tokenización de las tarjetas.

 

 

 

 

 

 

 

 

3. Asociar tarjeta al usuario (customer_id).

Una vez hayas obtenido un token tipo tok_, el siguiente paso es asociarlo al customer_id creado en el paso 1.

En este caso utilizarás el servicio Customer Card Add

POST  Customer Card Add

{{DOMAIN}}/v1/customer/cus_576c1d85baf38/cards

headers

AuthorizationBasic

Content-Typeapplication/json

body

{"token":"tok_9999"}

Example Request

curl --location --request POST '{{DOMAIN}}/v1/customer/cus_576c1d85baf38/cards' 
--header 'Content-Type: application/json' 
--data-raw '{"token":"tok_9999"}'

Example Request

curl --location --request POST '{{DOMAIN}}/v1/customer/cus_576c1d85baf38/cards' 
--header 'Content-Type: application/json' 
--data-raw '{"token":"tok_9999"}'

 

 

El nuevo token generado tipo crd_ te permitirá realizar cargos periódicos ya sean para membresías, suscripciones o cargos OnDemand.

Este token se quedará asociado al customer_id y será el que debes utilizar para el cobro.

¿Te resultó útil este artículo? Si 2 No 2