Configurer la caisse express
Suivez ces étapes pour configurer la caisse express d’Affirm, y compris la configuration de la caisse, les options d’expédition et les calculs totaux.
Vous souhaitez offrir Affirm Express Checkout ?
Contactez votre gestionnaire de compte Affirm pour confirmer la disponibilité et connaître les prochaines étapes pour construire vos API.
Conditions préalables
- Créez un compte dans le Tableau de bord des commerçants Affirm.
- Intégrez l’option Affirm Checkout par défaut.
- Contactez votre gestionnaire de compte Affirm pour confirmer la disponibilité et connaître les prochaines étapes pour construire vos API.
Étapes
1. Configurer l'objet Checkout
Vous devez configurer l’ objet de caisse d’Affirm spécifiquement pour le flux de paiement express :
- Incluez
checkout_type: « express » dans l’objetmerchant. - Transmettez le tableau
itemset tous les autres attributs de caisse nécessaires. - (Optionnel, mais recommandé) Passez un
order_idde caisse pour retracer la session de paiement dans votre système. - Exclure l'objet
shippinget l'attributtotal.
affirm.checkout({
merchant: {
checkout_type: "express", // ensure this attribute is passed for Express Checkout
user_confirmation_url: "https://merchantsite.com/confirm",
user_cancel_url: "https://merchantsite.com/cancel",
public_api_key: "YOUR_PUBLIC_KEY",
user_confirmation_url_action: "POST",
},
order_id: "abc123", // optional
// exclude shipping & total attributes
items: [{
display_name: "Awesome Pants",
sku: "ABC-123",
unit_price: 10000
}],
// rest of checkout attributes
});
affirm.checkout.open();2. Configurer le point de terminaison de l'API des options d'expédition
Fournir un point de terminaison API côté serveur pour les options d’expédition qui :
- Accepte les articles du panier et l'adresse de livraison du client comme données d'entrée, et
- Retourne toutes les options d'expédition valides disponibles pour la commande.
Consultez la page de l’API Express Caisse pour obtenir les définitions complètes des charges utiles des requêtes et des réponses.
Lors de la sélection de l’adresse d’expédition par l’utilisateur, Affirm envoie une requête avec une charge utile similaire à la suivante :
{
"currency":"USD",
// https://docs.affirm.com/developers/reference/the-item-object
"items":[
{
"display_name":"Awesome Pants",
"sku":"ABC-123",
"unit_price":1999,
"qty":3,
"item_image_url":"http://merchantsite.com/images/awesome-pants.jpg",
"item_url":"http://merchantsite.com/products/awesome-pants.html",
"categories":[
[
"Apparel",
"Pants"
],
[
"Mens",
"Apparel",
"Pants"
]
]
}
],
// https://docs.affirm.com/developers/reference/shipping-billing-object
"shipping":{
"address":{
"line1":"325 Pacific Ave",
"city":"San Francisco",
"state":"CA",
"zipcode":"94111",
"country":"US"
},
"name":{
"first":"John",
"last":"Doe",
"full":"John Doe"
},
"phone_number":"4151234567",
"email":"[email protected]"
},
order_id: "abc123"
}Si la requête est réussie, Affirm s'attend à une réponse HTTP 200 similaire à la suivante :
{
"currency":"USD",
"shipping_options":[
{
"shipping_id":1,
"shipping_type":"Standard",
"shipping_amount":0
},
{
"shipping_id":2,
"shipping_type":"Express",
"shipping_amount":1000
},
{
"shipping_id":3,
"shipping_type":"Overnight",
"shipping_amount":2000
}
]
order_id: "abc123"
}Si la requête est infructueuse, Affirm s'attend à une réponse HTTP 422 similaire à ce qui suit :
{
"error_code": "unsupported_shipping_zone",
"message": "We currently do not offer shipping to Hawaii or Alaska.",
"fields": ["shipping.address.state"],
}3. Configurer le point de terminaison de l'API Total de la caisse
Fournir un point de terminaison API pour Total de la caisse qui :
- Accepte les articles du panier et les informations de livraison du client, et
- Retourne le montant d’expédition calculé, le montant de la taxe et le montant total de la commande pour la méthode d’expédition choisie.
Nous recommandons d'utiliser order_id pour suivre les sessions de caisse dans votre système. Voir la page de le API Paiement express pour les définitions complètes des requêtes et des réponses.
À la confirmation des détails d’expédition par l’utilisateur, Affirm envoie une requête avec une charge utile similaire à la suivante :
{
// selected shipping option returned from the Shipping Options API Endpoint
"selected_shipping_option":{
"shipping_id":1,
"shipping_type":"Standard",
"shipping_amount":0
}
// https://docs.affirm.com/developers/reference/the-item-object
"items":[
{
"display_name":"Awesome Pants",
"sku":"ABC-123",
"unit_price":1999,
"qty":3,
"item_image_url":"http://merchantsite.com/images/awesome-pants.jpg",
"item_url":"http://merchantsite.com/products/awesome-pants.html",
"categories":[
[
"Apparel",
"Pants"
],
[
"Mens",
"Apparel",
"Pants"
]
]
}
],
// https://docs.affirm.com/developers/reference/shipping-billing-object
"shipping":{
"address":{
"line1":"325 Pacific Ave",
"city":"San Francisco",
"state":"CA",
"zipcode":"94111",
"country":"US"
},
"name":{
"first":"John",
"last":"Doe",
"full":"John Doe"
},
"phone_number":"4151234567",
"email":"[email protected]"
},
}Si la requête est réussie, Affirm s'attend à une réponse HTTP 200 similaire à la suivante :
{
"currency":"USD",
"shipping_amount": "1000",
"shipping_type": "UPS Ground",
"tax_amount": "800",
"total": "11800"
}Si la requête est infructueuse, Affirm s'attend à une réponse HTTP 422 similaire à ce qui suit :
{
"error_code": "unsupported_shipping_zone",
"message": "We currently do not offer shipping to Hawaii or Alaska.",
"fields": ["shipping.address.state"],
}4. Récupérer les détails de l'expédition
Si vous réussissez le order_id à l'étape 3 pour suivre la session de caisse dans votre système, cette étape est facultative.
Une fois que l'utilisateur a terminé avec succès son paiement Affirm, vous pouvez appeler l'API de lecture de caisse Affirm avec l'ID de caisse pour récupérer les informations complètes d'expédition et les détails de caisse :
{
"total": 20000,
"selected_shipping_option":{
"shipping_id":1,
"shipping_type":"Standard",
"shipping_amount": 1000 // should match shipping_amount field below
},
"shipping_amount": 1000,
"shipping": {
"name": {
"full": "John Doe",
"first": "John",
"last": "Doe"
},
"address": {
"city": "San Francisco",
"country": "USA",
"line1": "123 Example Street",
"line2": "Apt 123",
"state": "CA",
"zipcode": "94107"
},
"email": "[email protected]",
"phone_number": "1234567890"
},
"billing_frequency": "monthly",
"currency": "USD",
"meta": {
"release": "string",
"user_timezone": "America/Los_Angeles",
"_affirm_tracking_uuid": "356a483a-86b2-4846-b6f2-70d37d95a78c"
},
"financial_program_external_name": "string",
"financial_program_name": "standard_3_6_12",
"checkout_flow_type": "classic",
"billing": {
"name": {
"last": "string",
"first": "string"
},
"phone_number": "1234567890",
"email": "[email protected]"
},
"config": "string",
"product_type": "string",
"api_version": "v2",
"metadata": {
"checkout_channel_type": "online",
"mode": "redirect"
},
"merchant": {
"public_api_key": "string",
"user_cancel_url": "string",
"user_confirmation_url": "string",
"user_confirmation_url_action": "string",
"name": "string",
},
"product": "string",
"order_id": "ABC123",
"suppress_expiration_declination_messaging": true,
"mfp_rule_input_data": {
"items": {
"sku_number": {
"sku": 0,
"item_url": "string",
"display_name": "string",
"unit_price": 0,
"qty": 0,
"item_type": "string",
"item_image_url": "string"
}
},
"total": 49999,
"metadata": {
"checkout_channel_type": "online",
"mode": "redirect"
},
"financing_program": "string"
},
"loan_type": "classic",
"chekcout_type": "merchant",
"tax_amount": 0,
"checkout_status": "string",
"email": "[email protected]",
"phone_number": "1234567890"
},
"use_adaptive": true,
"financing_program": "string",
"merchant_external_reference": "ab-12345"
}5. Ajouter le bouton de paiement Affirm
Ajoutez le bouton de caisse Affirm pré-stylisé sur votre site web pour bénéficier du paiement express. Consultez le bouton caisse pour plus de détails.
Exemple:
<div class="affirm-checkout-button-container"
data-page-type="product"
data-size="large"
data-theme="dark"
data-shape="rounded"
data-button-text="checkout"
>
</div>Quelle est la prochaine étape?
Mis à jour 3 days ago
USA