埋め込み可能な決済フォームである Mobile Payment Element を使用して、Amazon や他の支払い方法を、最小限の作業で既存の Stripe システムに追加できます。
Alma は 1 回限りの決済手段であり、顧客は 2 回、3 回、4 回の分割払いを選択できます。顧客は、ウェブサイトまたはアプリからリダイレクトされ、Alma で支払いを承認すると、ウェブサイトまたはアプリに戻されます。お客様は支払いが成功したか失敗したかに関する即時通知を受け取ります。
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe Android SDK はオープンソースであり、詳細なドキュメントが提供されています。
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
plugins {
id("com.android.application")
}
android { ... }
dependencies {
implementation("com.stripe:stripe-android:21.18.0")
implementation("com.stripe:financial-connections:21.18.0")
}
Stripe の公開可能キーを使用して SDK を設定し、 Application
サブクラスなどで、Stripe API へのリクエストを実行できるようにします。
import com.stripe.android.PaymentConfiguration
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
PaymentConfiguration.init(
applicationContext,
"pk_test_TYooMQauvdEDq54NiTphI7jx"
)
}
}
注
Use your test keys while you test and develop, and your live mode keys when you publish your app.
Stripe サンプルでは、サーバへの HTTP リクエストの作成に、OkHttp および GSON も使用します。
サーバー側
PaymentIntent (支払いインテント) は、顧客から支払いを回収する意図を表すオブジェクトで、決済プロセスのライフサイクルの各段階を追跡します。
注意
クライアント側ではなく、信頼できる環境のサーバー側で常に支払い金額を指定してください。これにより、顧客が金額を恣意的に選択できないようにします。
ダッシュボードを使用して、アカウントの支払い方法を有効または無効にします。Stripe では、取引の金額、通貨、決済フローなどの要因に基づいて、適切な支払い方法が取引ごとに動的に表示されます。
PaymentIntentを作成する前に、ダッシュボードの支払い方法の設定ページで Alma を有効にします。金額と通貨を指定して、サーバーで PaymentIntent を作成します。
curl https://api.stripe.com/v1/payment_intents \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d amount=1099 \
-d currency=usd \
-d "automatic_payment_methods[enabled]"=true
クライアント側
クライアント側でサーバーの PaymentIntent をリクエストし、その client secret を保存します。
class CheckoutActivity : AppCompatActivity() {
private lateinit var paymentIntentClientSecret: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
startCheckout()
}
private fun startCheckout() {
}
}
Stripe に支払いを送信する
顧客が Alma で支払うをタップしたら、PaymentIntent
を確定して支払いを完了します。PaymentIntent
client secret を使用して ConfirmPaymentIntentParams
オブジェクトを設定します。
client secret は、Stripe API リクエストを認証する API キーとは異なります。このデバイスは支払いを完了できるため、慎重に扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩することがないようにしてください。
Alma の支払いを確定する
PaymentHandler.confirmPayment
を呼び出して支払いを完了します。これにより WebView が表示され、顧客はそこから Alma で支払いを完了できます。完了すると、支払い結果とともに、完了ブロックが呼び出されます。
class CheckoutActivity : AppCompatActivity() {
private val paymentLauncher: PaymentLauncher by lazy {
val paymentConfiguration = PaymentConfiguration.getInstance(applicationContext)
PaymentLauncher.create(
activity = this,
publishableKey = paymentConfiguration.publishableKey,
stripeAccountId = paymentConfiguration.stripeAccountId,
callback = ::onPaymentResult,
)
}
private fun startCheckout() {
val almaParams = PaymentMethodCreateParams.createAlma()
val confirmParams = ConfirmPaymentIntentParams
.createWithPaymentMethodCreateParams(
paymentMethodCreateParams = almaParams,
clientSecret = paymentIntentClientSecret,
)
paymentLauncher.confirm(confirmParams)
}
private fun onPaymentResult(paymentResult: PaymentResult) {
}
}
サポートされている通貨
お客様の国に対応する通貨で Alma での支払いを作成できます。Alma のデフォルトの現地通貨は eur
で、顧客は購入金額を eur
でも確認できます。
通貨 | 国 |
---|
eur | France, Italy, Spain, Netherlands, Belgium, Luxembourg |