# Stripe app for Salesforce Platform AgnosticInvocable の例 このガイドではすぐに使用できるコード例を用いて、Salesforce 内で直接 Stripe の顧客と PaymentIntent を作成する方法について、手順を追って示します。Salesforce の管理者、開発者、そして Stripe と Salesforce を関連付けてデータフローと取引管理を円滑に進めたいと考えるどなたにも、このガイドは役立ちます。 こちらの例では、カスタムの Apex クラスを活用して、Stripe の RESTful API への、汎用的で非依存型のコールを可能にします。これらの例は、Salesforce プラットフォームと Stripe API 間に抽象化レイヤーを確立する場合に便利で、システムを柔軟で管理しやすいものにします。 ## Stripe で顧客を作成する > #### Accounts v2 API を使用した顧客の表現 > > Accounts v2 API では、Connect ユーザーには一般提供され、その他の Stripe ユーザーには公開プレビューで提供されます。Accounts v2 プレビューの一部である場合は、コードで[プレビューバージョン](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning)を指定する必要があります。 > > Accounts v2 プレビューへのアクセスをリクエストするには、 > > ほとんどのユースケースでは、[Customer](https://docs.stripe.com/api/customers.md) オブジェクトを使用するのではなく、[顧客を顧客設定済みの Account オブジェクトとしてモデル化する](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md)ことをお勧めします。 次のコード例では、`name`、`email`、`metadata` を設定して Stripe の[顧客](https://docs.stripe.com/api/customers.md)を作成します。 #### Java ```java // 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 postCustomerParameters = new List{ '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 paramsCollection = new List{ parameters }; List 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]); ``` ### PaymentIntent を作成する このコード例は Stripe で PaymentIntent を作成します。 #### Java ```java 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 postPaymentIntentParameters = new List{ 'amount=' + amount, // Pass in the amount to be charged for this PaymentIntent in the minimum currency unit (for example, cents for USD) 'currency=' + stripecurrency, // Pass in the currency for this PaymentIntent (for example, 'usd' for USD) 'customer=' + customerId, // Pass in customer to PaymentIntent 'automatic_payment_methods[enabled]=true', //Turning on automatic payment methods 'metadata[order_id]=' + orderID }; parameters.requestBody = String.join(postPaymentIntentParameters, '&'); List paramsCollection = new List{ parameters }; List results = stripeGC.AgnosticInvocable.callStripeEndpoint(paramsCollection); return (results != null && results.size() > 0) ? results[0] : null; } } ``` ## See also - [インストールガイド](https://docs.stripe.com/use-stripe-apps/stripe-app-for-salesforce/installation-guide.md) - [イネーブルメントビデオ](https://docs.stripe.com/use-stripe-apps/stripe-app-for-salesforce/training.md) - [イベントの設定](https://docs.stripe.com/use-stripe-apps/stripe-app-for-salesforce/configure-events.md)