# Postman And SDK

<Accordion title="Postman" defaultOpen>
[ https://documenter.getpostman.com/view/10814992/2sB3BHkohx]( https://documenter.getpostman.com/view/10814992/2sB3BHkohx)
</Accordion>

<Accordion title="JAVA SDK Example" defaultOpen>
[https://github.com/linkyam/java-pay](https://github.com/linkyam/java-pay)
</Accordion>

<Accordion title="PHP sign exmpale" defaultOpen>
 
```PHP
<?php
// ==== base data ====
$url = 'https://xx.com/gateway/base/biz';
$mchId       = '1416010331032883200';
$serviceName = 'api.pay';
$method      = 'pay';
$signType    = 'SHA512';
$timestamp   = time();
$key         = 'kssdlksdsd=='; // api key

// ==== Http payload ====
$bodyArray = [
    "amount"      => "5.00",
    "callbackUrl" => "http://127.0.0.1:8082/callback",
    "redirectUrl" => "http://www.baidu.com",
    "currency"    => "BRL",
    "dynamic"     => "1",
    "email"       => "muazpe@gmail.com",
    "firstname"   => "Murilo Azeredo Pereira",
    "lastname"    => "your lasttname",
    "mchOrderId"  => "1232434323233463411fv34",
    "phone"       => "+5511967164793",
    "docNumber"   => "14868845802",
    "docType"     => "CPF",
    "productinfo" => "your pro simple desc"
];
$bodyJson = json_encode($bodyArray, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

// ==== sign ====
$stringToSign = $mchId . $serviceName . $method . $timestamp . $signType . $bodyJson . $key;
$sign = hash('sha512', $stringToSign);

// ==== debug ====
echo "===== debug =====\n";
echo "String to sign:\n" . $stringToSign . "\n\n";
echo "Generated sign:\n" . $sign . "\n\n";
echo "Body JSON:\n" . $bodyJson . "\n\n";

// ==== Http header ====
$headers = [
    "method: {$method}",
    "signType: {$signType}",
    "serviceName: {$serviceName}",
    "mchId: {$mchId}",
    "timestamp: {$timestamp}",
    "sign: {$sign}",
    "Content-Type: application/json"
];

// ==== Request log ====
echo "Request headers:\n";
print_r($headers);
echo "\nSending request...\n\n";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $bodyJson);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
if ($response === false) {
    echo "cURL Error: " . curl_error($ch) . "\n";
} else {
    echo "===== API Response =====\n";
    echo $response . "\n";
}
curl_close($ch);
?>
```
</Accordion>

<Accordion title="Python Sign example" defaultOpen>
  ```Python
  import time
import json
import hashlib
import requests

# ==== Base Data ====
url = 'https://xx.com/gateway/base/biz'
mchId = '1416010331032883200'
serviceName = 'api.pay'
method = 'pay'
signType = 'SHA512'
timestamp = int(time.time())
key = 'kssdlksdsd=='  # Api key

# ==== Http body ====
body_dict = {
    "amount": "5.00",
    "callbackUrl": "http://127.0.0.1:8082/callback",
    "redirectUrl": "http://www.baidu.com",
    "currency": "BRL",
    "dynamic": "1",
    "email": "muazpe@gmail.com",
    "firstname": "Murilo Azeredo Pereira",
    "lastname": "your lasttname",
    "mchOrderId": "1232434323233463411fv34",
    "phone": "+5511967164793",
    "docNumber": "14868845802",
    "docType": "CPF",
    "productinfo": "your pro simple desc"
}

# Tips: Maintain the exact JSON format of JS (without spaces and without escaping slashes)
body_json = json.dumps(body_dict, ensure_ascii=False, separators=(',', ':'))

# ==== Sign ====
string_to_sign = f"{mchId}{serviceName}{method}{timestamp}{signType}{body_json}{key}"
sign = hashlib.sha512(string_to_sign.encode('utf-8')).hexdigest()

# ==== Debug ====
print("===== Debug =====")
print("String to sign:\n", string_to_sign, "\n")
print("Generated sign:\n", sign, "\n")
print("Body JSON:\n", body_json, "\n")

# ==== Http Header ====
headers = {
    "method": method,
    "signType": signType,
    "serviceName": serviceName,
    "mchId": mchId,
    "timestamp": str(timestamp),
    "sign": sign,
    "Content-Type": "application/json",
    "Authorization": "Bearer eyJraWQiOiJBVTRoVDdFSllxTERTRWs4S0pVa3FJVU9NS0RXMzBMQ1FuYld3RWZaMGg0PSIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiJkOGIzYTBjOC0xMGQ4LTRlYjUtOTI0Mi03ODk4MDkxYzRiMjkiLCJpc3MiOiJodHRwczpcL1wvY29nbml0by1pZHAudXMtZWFzdC0xLmFtYXpvbmF3cy5jb21cL3VzLWVhc3QtMV9VcWduTE1uSmciLCJjbGllbnRfaWQiOiIxMGRmbmdzaDlvNW9jOTJ0azA0b2NzYjJndiIsIm9yaWdpbl9qdGkiOiJmNTVlMWU0Ny05ZDFlLTQ3YWEtODYxNi03NmZhNDhkMjFiMjEiLCJldmVudF9pZCI6IjU4ZTc2ZDgwLWI1NmYtNDczYy1hNmFhLWI0YTJiOWRhYjg2MSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2ODU0NTcyNjUsImV4cCI6MTY4NTQ1ODQ2NSwiaWF0IjoxNjg1NDU3MjY1LCJqdGkiOiI0MDc5NGE1OC00NTEzLTRlZTItOGM5ZC00YTI0ZmE3YTU5NGUiLCJ1c2VybmFtZSI6IkNMSV9lODFkMTgwNzkzNTcifQ.ECuYllSyWJHXJjOPr1VbHl3GnT93nNeph1YLeyAcNkDO97_FKoDuVjlXkar7MtPz2OUrF22O_yiumCt554kQ1EZA6LYO4LL1MfzXPLPodjTwkdrCl-oKxhc99fGfqALa2nxK_KWdKNB9gs60Qgbr4a7-_zl5SWadQsqjjs1GW8fvvKUj2iu1WG-jG_-vSl6Pw5oxghocc16aDbdO3HRbmXLp1nI5cR2doSiOQ_exPM7O3vKuPG8e19gLNsdsA1SB6g6sy7lcvacwSglRNA4FofMlpQGkV-2UFaU5dpio4qeJqhE4kXcoU3V-A4xaVxdquNoEjSZ5brHWQ8JXHNr6Xw"
}

print("Request headers:")
for k, v in headers.items():
    print(f"{k}: {v}")

# ==== Request log ====
print("\nSending request...\n")
response = requests.post(url, headers=headers, data=body_json)

print("===== API Response =====")
print(response.status_code)
print(response.text)
  ```
</Accordion>

