Actualizar
Permite modificar los datos de ésta de una orden, así es posible ampliar la vida de la orden (fecha de expiración), monto, descripción, referencia de pago, etc.
Producción: https://api.payvalida.com/api/v3/porders
curl --location --request PATCH 'https://api-test.payvalida.com/api/v3/porders' \
--header 'Content-Type: application/json' \
--data-raw '{
"merchant": "kuanto",
"email": "someone@example.com",
"country": 343,
"order": "999999991",
"reference": "46534512",
"money": "COP",
"amount": "9500",
"description": "Orden de prueba",
"method": "",
"language": "es",
"recurrent": true,
"expiration": "27/12/2020",
"iva": "0",
"checksum": "1AC89E7089355B5069222C01779431A192FC4D459C25584D69B64ABBF605FE7CB54A015296A39D234CA9B94FF9F068423AC1E00F5A319EB18F2167B97C8A0BB1",
"user_di": "94320444",
"user_type_di": "CC",
"user_name": "NombreUsuario",
"redirect_timeout": "300000"
}'
{
"CODE": "0000",
"DESC": "OK",
"DATA": {
"OrdenID": "999999991",
"Monto": "9,500.00",
"PVordenID": "1934652",
"Referencia": "46534512",
"Operacion": "ACTUALIZADA",
"checkout": "sandbox-checkout.payvalida.com?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNRVJDSEFOVF9DRUwiOiIzMTYzODg3MzQwIiwiTUVSQ0hBTlRfQ09ERSI6NzMsIk9SREVSX0NPREUiOjE5MzQ2NTIsIk1FUkNIQU5UX0VNQUlMIjoiZWZyYW5jb0BwYXl2YWxpZGEuY29tIiwiTUVSQ0hBTlRfTE9HTyI6Imh0dHBzOi8vdGVzdC1pbWFnZXMucGF5dmFsaWRhLmNvbS92YWxpZGRhd2ViL2xvZ29fbWVyY2hhbnQva3VhbnRvL2xvZ28xNTk4NTM4MTEyMjkyLmpwZyIsIk1FUkNIQU5UX1VSTF9SRVRVUk4iOiJodHRwczovL3BsdXMuZ29vZ2xlLmNvbS8rZ29vZ2xlIiwiTUVSQ0hBTlRfTkFNRSI6Ikt1YW50byBUZXN0IiwiRVhQSVJBVElPTiI6IjI3LzEyLzIwMjAiLCJPUkRFUl9CUklFRiI6Ik9yZGVuIGRlIHBydWViYSIsIk1FUkNIQU5UX1RFTCI6IjQ0NDk5NjkiLCJPUkRFUl9DVVJSRU5DWSI6IkNPUCIsIk9SREVSX0FNT1VUIjoiOSw1MDAuMDAiLCJNRVJDSEFOVF9JRCI6Imt1YW50byIsIk9SREVSX1JFRkVSRU5DRSI6IjQ2NTM0NTEyIiwiT1JERVJfTUVUSE9EIjoiIiwiVVNFUl9ESSI6IiIsIlVTRVJfVFlQRV9ESSI6IiIsIlVTRVJfTkFNRSI6IiIsIlJFRElSRUNUX1RJTUVPVVQiOiIiLCJNRVJDSEFOVF9URU1QTEFURSI6InY0IiwiZXhwIjoxNjA5MTExMTAzLCJpc3MiOiJhdXRoMCJ9.p2JIfEJokyy0OrKJghv4aJvXGrjErEfAY6f0Ane1Ghs"
}
}
La identificación del comercio (merchant) y el FIXED_HASH se proporcionan al momento de crear una cuenta en nuestra plataforma.
Se verifican los datos enviados y se actualizan aquellos que sean diferentes a la orden original.
Para actualizar la orden, es necesario que su estado sea PENDIENTE, de lo contrario no podrá actualizarse.
Ejemplo
GO
package main
import (
"bytes"
"crypto/sha512"
"encoding/hex"
"encoding/json"
"fmt"
"io/ioutil"
"math/rand"
"net/http"
"time"
)
type Request struct {
Country int `json:"country,omitempty"`
Email string `json:"email,omitempty"`
Merchant string `json:"merchant,omitempty"`
Order string `json:"order,omitempty"`
Reference string `json:"reference,omitempty"`
Money string `json:"money,omitempty"`
Amount string `json:"amount,omitempty"`
Description string `json:"description,omitempty"`
Language string `json:"language,omitempty"`
Recurrent bool `json:"recurrent,omitempty"`
Expiration string `json:"expiration,omitempty"`
Method string `json:"method,omitempty"`
Iva string `json:"iva,omitempty"`
Checksum string `json:"checksum,omitempty"`
UserDI string `json:"user_di,omitempty"`
UserTypeDI string `json:"user_type_di,omitempty"`
RedirectTimeout string `json:"redirect_timeout,omitempty"`
UserName string `json:"user_name,omitempty"`
}
func main() {
url := "https://api-test.payvalida.com/api/v3/porders"
method := "PATCH"
email := "someone@example.com"
country := "343"
order := "test" + fmt.Sprint(rand.Intn(999999999))
money := "COP"
amount := "20000"
fixedHash := "xxccc_b0b20707cca2b283b5844e77cadf2b5813bd923362b91583c95b736c8763937c0e0df27e9b730c404eeac6484666430f6042c043089135e8d3e76f2e86a82c38"
Paysha512 := sha512.Sum512([]byte(email + country + order + money + amount + fixedHash))
checksum := hex.EncodeToString(Paysha512[:])
date := time.Now()
expiration := date.AddDate(0, 0, 2)
request := Request{
Country: 343,
Email: email,
Merchant: "kuanto",
Order: order,
Reference: "",
Money: money,
Amount: amount,
Description: "Test pruebas unitarias",
Language: "es",
Recurrent: false,
Expiration: expiration.Format("02/01/2006"),
Method: "",
Iva: "0",
Checksum: checksum,
UserDI: "90000000",
UserTypeDI: "CC",
RedirectTimeout: "150000",
UserName: "devPayvalida",
}
json, err := json.Marshal(request)
if err != nil {
fmt.Println(err)
return
}
client := &http.Client{}
req, err := http.NewRequest(method, url, bytes.NewBuffer(json))
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-test.payvalida.com/api/v3/porders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS =>"{\n \"merchant\": \"kuanto\",\n \"email\": \"someone@example.com\",\n \"country\": 343,\n \"order\": \"999999991\",\n \"reference\": \"46534512\",\n \"money\": \"COP\",\n \"amount\": \"9500\",\n \"description\": \"Orden de prueba\",\n \"method\": \"\",\n \"language\": \"es\",\n \"recurrent\": true,\n \"expiration\": \"27/12/2020\",\n \"iva\": \"0\",\n \"checksum\": \"1AC89E7089355B5069222C01779431A192FC4D459C25584D69B64ABBF605FE7CB54A015296A39D234CA9B94FF9F068423AC1E00F5A319EB18F2167B97C8A0BB1\",\n \"user_di\": \"94320444\",\n \"user_type_di\": \"CC\",\n \"user_name\": \"NombreUsuario\",\n \"redirect_timeout\": \"300000\"\n}",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.patch("https://api-test.payvalida.com/api/v3/porders")
.header("Content-Type", "application/json")
.body("{\n \"merchant\": \"kuanto\",\n \"email\": \"someone@example.com\",\n \"country\": 343,\n \"order\": \"999999991\",\n \"reference\": \"46534512\",\n \"money\": \"COP\",\n \"amount\": \"9500\",\n \"description\": \"Orden de prueba\",\n \"method\": \"\",\n \"language\": \"es\",\n \"recurrent\": true,\n \"expiration\": \"27/12/2020\",\n \"iva\": \"0\",\n \"checksum\": \"1AC89E7089355B5069222C01779431A192FC4D459C25584D69B64ABBF605FE7CB54A015296A39D234CA9B94FF9F068423AC1E00F5A319EB18F2167B97C8A0BB1\",\n \"user_di\": \"94320444\",\n \"user_type_di\": \"CC\",\n \"user_name\": \"NombreUsuario\",\n \"redirect_timeout\": \"300000\"\n}")
.asString();
JavaScript
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
var raw = JSON.stringify({"merchant":"kuanto","email":"someone@example.com","country":343,"order":"999999991","reference":"46534512","money":"COP","amount":"9500","description":"Orden de prueba","method":"","language":"es","recurrent":true,"expiration":"27/12/2020","iva":"0","checksum":"1AC89E7089355B5069222C01779431A192FC4D459C25584D69B64ABBF605FE7CB54A015296A39D234CA9B94FF9F068423AC1E00F5A319EB18F2167B97C8A0BB1","user_di":"94320444","user_type_di":"CC","user_name":"NombreUsuario","redirect_timeout":"300000"});
var requestOptions = {
method: 'PATCH',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api-test.payvalida.com/api/v3/porders", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Última actualización