用 Stripe Elements 和 Charges API 接受付款Charges API
接受美国和加拿大客户的线上付款。
旧版 API
The content of this section refers to a Legacy feature. Use the Payment Intents API instead.
Charges API 不支持以下功能,信用卡合规对其中很多都有要求:
用我们的预构建的银行卡 UI 组件创建支付表单,安全地收集银行卡详情,不需要处理敏感的数据。然后这些银行卡详情会被转化为一个代表性的 Token,可将它安全地发送到您的服务器。您的服务器用此令牌来创建收款。
设置 Stripe客户端服务器端
服务器端
该集成应用要求您的服务器上的端点与 Stripe API 通讯。请用我们的官方库从您的服务器访问 Stripe API:
客户端
Stripe Android SDK 是开源的,且有完整的文档。
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
用您的 Stripe 公钥配置 SDK,以便它可以向 Stripe API 发送请求,例如在您的 Application
子类中:
创建您的支付表单客户端
用 CardInputWidget 在客户端安全地收集银行卡信息,这是 SDK 提供的一个临时 UI 组件,用于收集卡号、有效期、CVC 和邮编。
CardInputWidget 执行实时验证和格式化。
通过向结账页面的布局中添加以下模块,创建一个银行卡组件和Pay按钮实例:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:showIn="@layout/activity_checkout" tools:context=".CheckoutActivity"> <!-- ... --> <com.stripe.android.view.CardInputWidget android:id="@+id/cardInputWidget" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp"/> <Button android:text="Pay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/payButton" android:layout_marginTop="20dp" app:layout_constraintTop_toBottomOf="@+id/cardInputWidget" app:layout_constraintStart_toStartOf="@+id/cardInputWidget" app:layout_constraintEnd_toEndOf="@+id/cardInputWidget"/> <!-- ... --> </androidx.constraintlayout.widget.ConstraintLayout>
运行您的应用程序,确保结账页面可以显示银行卡组件及支付按钮。
创建令牌客户端
当客户点击支付按钮时,将 CardInputWidget
收集的银行卡信息转化成一个 Stripe 令牌。令牌化可以确保敏感的银行卡数据从不接触您的服务器,让您的集成永远保持 PCI 合规。
下面的代码显示了 Stripe#createToken() 的使用方式。该方法将 Card
实例作为了第一个参数。第二个参数是 ApiResultCallback<Token> 实例,它是客户端在成功或失败时调用的。成功完成令牌化操作后,将返回的令牌 ID 发送到您的服务器。
从客户端将 Token id 发送到您的服务器。
测试您的集成应用
如果您现在可以顺利在银行卡组件内输入测试卡,提交至服务器,然后看到您的服务器成功创建收款,那就说明您的集成完工了。
您已创建好 Charges API 集成,可以开始接收银行卡付款了。此 API 不支持扩展到美国和加拿大以外的企业或客户。为获得更强大的全球支付功能,请学习用 Payment Intents API 接受付款。