Exemples d'appels AgnosticInvocable avec Stripe Connector for Salesforce Platform
Ce guide fournit des exemples de code exploitables, qui vous montrent pas à pas comment créer des clients Stripe et des PaymentIntents directement dans Salesforce. Si vous êtes un administrateur ou un développeur Salesforce, ou si vous souhaitez simplement associer Stripe et Salesforce pour des flux de données et une gestion des transactions fluides, vous êtes au bon endroit.
Les exemples présentés ici s’appuient sur des classes Apex personnalisées pour activer des appels génériques et agnostiques à l’API RESTful de Stripe. Ces exemples sont utiles si vous souhaitez établir une couche d’abstraction entre votre plateforme Salesforce et l’API Stripe, afin de rendre votre système plus flexible et plus facile à gérer.
Créer un objet Customer dans Stripe
L’exemple de code suivant crée un objet Customer Stripe comportant les attributs name
, email
et metadata
.
// Step 1: Create an instance of the stripeGC.RawInvocableParameters class. This class is used to set the parameters for the Stripe API call. stripeGC.RawInvocableParameters parameters = new stripeGC.RawInvocableParameters(); // Step 2: Set the HTTP method to 'POST' as you are creating a new customer. parameters.method = 'POST'; // Step 3: Set the endpoint to '/v1/customers'. This is the Stripe API endpoint for creating a new customer. parameters.endpoint = '/v1/customers'; //Step 4: Set the Stripe Account ID from Salesforce and set it to the accountId field of the parameters object. parameters.accountId = 'a028B0000029RhlQAE'; //Step 5: Set the request body with the customer details. List<String> postCustomerParameters = new List<String>{ 'email=' + 'customerEmail@example.com', 'name=' + 'Tim Smith', 'metadata[AccountId]=' + 'abc123' }; parameters.requestBody = String.join(postCustomerParameters, '&'); //Step 6: Add the parameters object to a list and call the callStripeEndpoint method of the stripeGC.AgnosticInvocable class. List<stripeGC.RawInvocableParameters> paramsCollection = new List<stripeGC.RawInvocableParameters>{ parameters }; List<String> results = stripeGC.AgnosticInvocable.callStripeEndpoint(paramsCollection); //Step 7: The callStripeEndpoint method will return a list of strings. If the customer was created successfully, the first string in the list will be the ID of the new customer. System.debug(results[0]);
Créer un PaymentIntent
Cet exemple de code crée un PaymentIntent dans Stripe.
public class stripePayment { @AuraEnabled(cacheable=true) public static String paymentIntent(String StripeAccountID, String amount, String stripecurrency, String orderID, String onBehalfOf, String customerId) { // Create Call for invocable stripeGC.RawInvocableParameters parameters = new stripeGC.RawInvocableParameters(); // Add HTTP Method parameters.method = 'POST'; // Add endpoint parameters.endpoint = '/v1/payment_intents'; // Get the Stripe Account ID from Salesforce // This assumes you already have the Stripe Account ID and will pass it in as a parameter // Alternately, you could use a SOQL query to obtain the Stripe Account ID as per previous examples parameters.accountId = StripeAccountID; parameters.connectAccount = onBehalfOf; // Prepare the request body List<String> postPaymentIntentParameters = new List<String>{ 'amount=' + amount, // Pass in the amount to be charged for this payment intent in the minimum currency unit (for example, cents for USD) 'currency=' + stripecurrency, // Pass in the currency for this payment intent (for example, 'usd' for USD) 'customer=' + customerId, // Pass in customer to payment intent 'automatic_payment_methods[enabled]=true', //Turning on automatic payment methods 'metadata[order_id]=' + orderID }; parameters.requestBody = String.join(postPaymentIntentParameters, '&'); List<stripeGC.RawInvocableParameters> paramsCollection = new List<stripeGC.RawInvocableParameters>{ parameters }; List<String> results = stripeGC.AgnosticInvocable.callStripeEndpoint(paramsCollection); return (results != null && results.size() > 0) ? results[0] : null; } }