Virtual Card on the Web
Learn how to launch Affirm at checkout and retrieve a virtual card.
Aperçu
Starting a payment with Affirm on the web with a virtual card consists of creating a checkout form, tokenizing customer information securely, and generating a virtual card. You can then process the card through your existing payment gateway.
Ce guide vous démontre la manière d'inclure Affirm.js
et Affirm Checkout sur votre page web pour créer une carte virtuelle Affirm.
Étape 1 : Mise en place d'Affirm.js
Use only your sandbox API keys and domain for testing and development. This ensures that you don't accidentally modify your live transactions. Note that Affirm does not generate real virtual cards in the sandbox environment. Please work with your technical account manager on live testing.
Clés API Sandbox
Utilisez uniquement les clés et le domaine d'API de votre sandbox à des fins de test et de développement. Cela garantit que vous ne modifiez pas accidentellement vos transactions en direct.
<script>
_affirm_config = {
public_api_key: "YOUR_PUBLIC_KEY",
script: "https://cdn1-sandbox.affirm.com/js/v2/affirm.js"
};
(function(m,g,n,d,a,e,h,c){var b=m[n]||{},k=document.createElement(e),p=document.getElementsByTagName(e)[0],l=function(a,b,c){return function(){a[b]._.push([c,arguments])}};b[d]=l(b,d,"set");var f=b[d];b[a]={};b[a]._=[];f._=[];b._=[];b[a][h]=l(b,a,h);b[c]=function(){b._.push([h,arguments])};a=0;for(c="set add save post open empty reset on off trigger ready setProduct".split(" ");a<c.length;a++)f[c[a]]=l(b,d,c[a]);a=0;for(c=["get","token","url","items"];a<c.length;a++)f[c[a]]=function(){};k.async=
!0;k.src=g[e];p.parentNode.insertBefore(k,p);delete g[e];f(g);m[n]=b})(window,_affirm_config,"affirm","checkout","ui","script","ready","jsReady");
</script>
Affirm Instance Creation
Once you included the script above, a defined instance of Affirm will be created on your client. You will gain access to methods that are within the affirm object to trigger multiples actions.
Étape 2 : Créer l’objet de paiement
When a customer chooses Affirm to pay for a purchase, a [checkout object](https://docs.affirm.com/developers/reference/the-checkout-object)
containing the order details should be created with affirm.checkout()
so that Affirm can render the checkout flow. See below for a sample checkout object:
affirm.checkout({
"merchant":{
"name":"Your Customer-Facing Merchant Name",
"use_vcn": true
},
"shipping":{
"name":{
"first":"Joe",
"last":"Doe"
},
"address":{
"line1":"633 Folsom St",
"line2":"Floor 7",
"city":"San Francisco",
"state":"CA",
"zipcode":"94107",
"country":"USA"
},
"phone_number":"4153334567",
"email":"[email protected]"
},
"billing":{
"name":{
"first":"Joe",
"last":"Doe"
},
"address":{
"line1":"633 Folsom St",
"line2":"Floor 7",
"city":"San Francisco",
"state":"CA",
"zipcode":"94107",
"country":"USA"
},
"phone_number":"4153334567",
"email":"[email protected]"
},
"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"
}
],
"order_id":"JKLMO4321",
"metadata": {
"mode": "modal"
},
"shipping_amount":1000,
"tax_amount":500,
"total":5997
});
Note:
- Our virtual card product only supports modal mode. The Affirm checkout will open in a modal that floats on top of your checkout page. This is indicated in the checkout object when setting the
mode
parameter tomodal
.- Set the
use_vcn
parameter totrue
to enable card details to be generated on loan origination.affirm.checkout()
validates the required data in the checkout object.
Étape 3 : Lancez la caisse et gérez les rappels
After you create the checkout object, you can launch the Affirm checkout modal using the affirm.checkout.open_vcn() function. When the customer confirms their Affirm loan, we send a JavaScript callback on success or on error, depending on the outcome. In the event of a successful checkout, you will retrieve the card details and the checkout_id from the callback. See below for a template:
Retrieve Card Details
If you don't want to retrieve the card details from the client-side, we can always pass them back via the server-side only (for PCI reasons). Please contact Affirm through [email protected] for further information.
affirm.checkout.open_vcn({
success: function(card_response) {
console.log(card_response);
//add logic on handling the returned client-side card details and/or checkout token here
},
error: function(error_response) {
console.log(error_response);
//add logic on handling a declination or abandoned checkout here. We recommend redirecting users to the payment selection screen to choose an alternative payment method.
},
checkout_data: data
});
Étape 4 : Gestion des cartes
Once you receive the card details from the checkout response, you can submit authorizations, captures, and refunds to the virtual card using your existing payment rails.
You can also retrieve card details via your server using our Read Card API endpoint and the associated checkout_id
.
Retrieve Card Details
If you don't want to retrieve the card details from the client-side, we can always pass them back via the server-side only (for PCI reasons). Please [contact Affirm] for further details.
FAQ
Resolving "affirm.checkout.open_vcn is not a function" Error in VCN Integration
Q: How do I fix the error "affirm.checkout.open_vcn is not a function" when using Affirm's checkout methods?
R : Cette erreur se produit généralement lorsque le script Affirm n'a pas été entièrement chargé avant que les méthodes caisse et open_vcn ne soient appelées. Pour résoudre ce problème, intégrez les appels aux méthodes Affirm Checkout et open_vcn dans la méthode
affirm.ui.ready
. Vous trouverez ci-dessous une solution qui a aidé de nombreux commerçants :affirm.ui.ready(function() { affirm.checkout(checkoutObj); affirm.checkout.open_vcn({ success: function(card_checkout) { //On successful loan confirmation Affirm will trigger this function //This function will be used to pass CC number to your CC processor //You will need to handle redirecting to a success page here as well console.log(card_checkout); }, error: function(error_response) { //On Cancel or decline Affirm will trigger the following function //You will need to handle redirecting to an error page here console.log(error_response); } }); });
In this solution, the success function is used for processing successful loan confirmations, including passing credit card details to your processor and redirecting to a success page. The error function handles cancellations or declines by redirecting to an error page. This workaround ensures that Affirm's methods are only called after the script is fully loaded, effectively preventing the error.
Mis à jour 6 days ago