Autoriser et capturer les transactions
Apprendre le flux d'autorisation et de capture.
Autoriser la transaction
Le point de terminaison de la ressource Autoriser crée un prêt et réserve les fonds. Lorsque vous autorisez, Affirm génère un ID
unique que vous utiliserez pour faire référence à la transaction. Vous devez autoriser une transaction pour la créer entièrement.
![Screen Shot Authorization_& Capture flow_Isoflow_Diagram_7_8_2021.png Cela représente le flux d'autorisation et de capture.](https://files.readme.io/fb07311-Authorization__Capture_flow_Isoflow_Diagram_7_8_2021.png)
Cela représente le flux d'autorisation et de capture.
Si vous n'autorisez pas une transaction, elle ne sera pas considérée comme active. Cela signifie que l'utilisateur ne verra pas le prêt et que vous ne pourrez pas récupérer les fonds. Pour cette raison, vous devez autoriser le prêt dès que vous recevez un
checkout_token
.
Pour autoriser une transaction, vous aurez besoin du paramètre checkout_token
renvoyé par votre intégration client pour le transmettre au paramètre transaction_id
.
curl https://api.global.sandbox.affirm.com/api/v1/transactions
-X POST
-u "{public_api_key}:{private_api_key}"
-H "Content-Type: application/json"
-H "country-code: CAN"
-d '{"transaction_id": "{checkout_token}","order_id": "{order_id}"}'
$endpoint = "https://sandbox.affirm.com/api/v1/transactions";
$data = '{"transaction_id": "' . $_POST["transactions_id"] . '"}';
try {
$response = callAffirm($endpoint, $data);
// Handle the response
} catch (Exception $e) {
// Handle the exception
}
using(var httpClient = new HttpClient()) {
using(var request = new HttpRequestMessage(new HttpMethod("POST"), "https://sandbox.affirm.com/api/v1/transactions")) {
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("<public_api_key>:<private_api_key>"));
request.Headers.TryAddWithoutValidation("Authorization", $ "Basic {base64authorization}");
request.Content = new StringContent("{\"transaction_id\":\"<checkout_token>\"}");
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
var response = await httpClient.SendAsync(request);
HttpContent responseContent = response.Content;
using(var reader = new StreamReader(await responseContent.ReadAsStreamAsync())) {
Console.WriteLine(await reader.ReadToEndAsync());
}
Console.ReadKey();
}
}
Vous devriez recevoir une réponse qui ressemble à ceci avec l'ID
.
{
"status": "authorized",
"amount_refunded": 0,
"provider_id": 1,
"created": "2021-06-23T23:25:55Z",
"order_id": "ABC123",
"checkout_id": "7WYDR0M83CGE47GJ",
"currency": "CAN",
"amount": 49999,
"events": [
{
"currency": "CAN",
"amount": 49999,
"type": "auth",
"id": "7M8T1AMJP01FLI6B",
"created": "2021-06-23T23:26:28Z"
}
],
"remove_tax": false,
"authorization_expiration": "2021-07-23T23:26:28Z",
"id": "AMLC-5X0W"
}
Une fois que vous avez autorisé des frais et reçu l'objet de réponse, votre site doit effectuer les opérations suivantes :
- Valider que le montant autorisé est égal au total de la commande
- Enregistrez
charge_id
- Marquez le paiement de la commande comme étant en attente
Si l'autorisation échoue, votre site peut potentiellement enregistrer cette tentative de paiement, car elle n'est pas requise de notre côté.
Vous ne devez autoriser un prêt Affirm donné qu'une seule fois, pour le montant total de la
transaction en cours d'achat. Si vous avez un cas d'utilisation spécifique pour lequel cela peut s'avérer difficile
, veuillez nous contacter à l'adresse [email protected] ou utiliser le widget en bas de page.
Updated 9 months ago