Android接入stripe支付

阅读之前请大家先了解流程哦(适用于先绑卡后扣款的情况)
stripe国际化支付流程:
1.初始化stripe,创建stripe对象;
2.检索后台SetupIntent,得到client secret,也就是client token;(客户机密可用于通过信用卡网络验证和验证卡详细信息)
3.获取卡片信息,判断卡号,有效期,cvv是否正确有效
4.客户端收集付款方式详细信息,第一个参数: 银行卡卡号 二:月 三:年 四:CVC码
5.进行3D认证
6.调用stripe的创建支付方式回调成功后得到paymentMethodID,跳转到授权认证页面
7.身份验证后在onActivityResult接收回调信息
8.确认和身份验证后检索到的SetupIntent对象,返回成功后创建支付方式

代码部分:
依赖 ‘com.stripe:stripe-android:10.0.0’
1.private Stripe mStripe;
PaymentConfiguration.init(从stripe平台得到的pk);
mStripe = new Stripe(this, PaymentConfiguration.getInstance().getPublishableKey());
2.调用后台接口,得到client token;
3.用stripe提供的卡片信息输入框,为了满足UI效果,我们可以使用拆分开的控件
卡号:
<com.stripe.android.view.CardNumberEditText
android:id="@+id/add_et_cardnum"
android:layout_width=“wrap_content”
android:layout_height=“20dp”
android:layout_gravity=“start”
android:layout_marginLeft=“6dp”
android:layout_weight=“1”
android:background="@android:color/transparent"
android:focusable=“true”
android:focusableInTouchMode=“true”
android:gravity=“center_vertical”
android:hint="@string/card_num"
android:imeOptions=“actionDone”
android:inputType=“number”
android:maxLength=“19”
android:textColor="@color/color11"
android:textColorHint="@color/color9"
android:visibility=“visible”
tools:ignore=“UnusedAttribute”
tools:importantForAccessibility=“yes” />
有效日期
<com.stripe.android.view.ExpiryDateEditText
android:id="@+id/add_et_valid"
android:layout_width=“match_parent”
android:layout_height=“23dp”
android:layout_gravity=“start”
android:layout_marginTop=“27dp”
android:background="@android:color/transparent"
android:focusable=“true”
android:focusableInTouchMode=“true”
android:gravity=“center_vertical”
android:hint="@string/mm"
android:imeOptions=“actionNext”
android:inputType=“date”
android:maxLength=“5”
android:maxLines=“1”
android:singleLine=“true”
android:textColor="@color/color11"
android:textSize=“14sp”
android:visibility=“visible”
tools:ignore=“UnusedAttribute”
tools:importantForAccessibility=“yes” />
CVV码
<com.stripe.android.view.StripeEditText
android:id="@+id/add_et_cvv"
android:layout_width=“match_parent”
android:layout_height=“23dp”
android:layout_gravity=“start”
android:layout_marginTop=“27dp”
android:background="@android:color/transparent"
android:focusable=“true”
android:focusableInTouchMode=“true”
android:gravity=“center_vertical”
android:hint="@string/cvv"
android:imeOptions=“actionDone”
android:inputType=“numberPassword”
android:maxLength=“3”
android:maxLines=“1”
android:paddingRight=“20dp”
android:singleLine=“true”
android:textColor="@color/color11"
android:textSize=“14sp”
tools:ignore=“UnusedAttribute”
tools:importantForAccessibility=“yes” />
调用CardNumberEditText中的 **isCardNumberValid()**验证卡号
调用ExpiryDateEditText中的 **isDateValid()**验证有效期
4. //在客户端收集付款方式详细信息
//第一个参数: 银行卡卡号 二:月 三:年 四:CVC码
Card.Builder builder = new Card.Builder(cardnum, month, year, cvv);
Card card = builder.build();
PaymentMethodCreateParams.Card paymentMethodParamsCard = card.toPaymentMethodParamsCard();
final PaymentMethodCreateParams paymentMethodCreateParams =PaymentMethodCreateParams.create
(paymentMethodParamsCard, null);
5.//3D认证
PaymentAuthConfig.Stripe3ds2UiCustomization uiCustomization = new PaymentAuthConfig.Stripe3ds2UiCustomization.
Builder().build();
PaymentAuthConfig.init(new PaymentAuthConfig.Builder().set3ds2Config(new PaymentAuthConfig.Stripe3ds2Config
(new PaymentAuthConfig.Stripe3ds2Config.Builder()
// set a 5 minute timeout for challenge flow
.setTimeout(5)
// customize the UI of the challenge flow
.setUiCustomization(uiCustomization)
.build())
.build());
6. mStripe.createPaymentMethod(paymentMethodCreateParams, new ApiResultCallback() {
@Override
public void onSuccess(@NonNull PaymentMethod result) {
// Hold onto the PaymentMethod for step 4
paymentMethodID = result.id;
confirmSetupIntent(result.id);
}
@Override
public void onError(@NonNull Exception e) {
}
});
private void confirmSetupIntent(@NonNull String paymentMethodId) {
mStripe.confirmSetupIntent(this, ConfirmSetupIntentParams.create(paymentMethodId, clientToken));
}
7. @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mStripe.onSetupResult(requestCode, data,
new ApiResultCallback() {
@Override
public void onSuccess(@NonNull SetupIntentResult result) {
final SetupIntent setupIntent = result.getIntent();
final SetupIntent.Status status =
setupIntent.getStatus();
if (status == SetupIntent.Status.Succeeded) {
// show success UI
//认证成功后的处理逻辑
} else if (setupIntent.requiresConfirmation()) {
// handle confirmation
} else {
}
}
@Override
public void onError(@NonNull Exception e) {
// handle error
}
});
}
将卡与App绑定后后台返回成功信息,就OK了 。

Android接入stripe支付相关推荐

  1. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  2. Android接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  3. 【Android】Stripe支付

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一.Stripe是什么? 二.使用步骤 1.引入库 2.配置publishable key 来和Stripe通讯 3.创建 ...

  4. JAVA接入STRIPE支付教程(测试环境),STRIPE支付的调用以及STRIPE WEBHOOK回调

    一.环境准备 1.注册 2.密钥 3.WEBHOOK回调 二.核心代码 1.配置API.key以及webhook.key 2.支付demo 3.WEBHOOK回调 一.环境准备 1.注册 STRIPE ...

  5. cocos creator Android 接入Google支付sdk

    准备工作 1.手机上安装Google服务 2.一个绑定信用卡的Google账号: 3.Google play客户端: 4..Google Play开发者后台创建应用 5.科学上网的工具 -等等 这些就 ...

  6. Android 接入银联支付

    1.打开银联开放平台 https://open.unionpay.com/ 注册账户 2.点击"技术集成"01选择手机控件支付开发包(安卓版) 3.根据 中国银联手机支付控件接入指 ...

  7. android 接入华为支付,hms-iap-clientdemo-android-studio

    华为应用内支付服务客户端示例代码 本章节主要介绍接入华为应用内支付的客户端开发步骤,帮助您快速了解华为支付提供的客户端接口及其使用方法. 点击此处了解更多. 目录 简介 华为应用内支付服务(HUAWE ...

  8. android接入谷歌支付

    先集成google支付插件 implementation "com.android.billingclient:billing:4.0.0" 在Application进行初始化连接 ...

  9. 安卓-Android如何集成支付宝支付(集成阿里支付)详解。Android接入alipay支付

    支付宝支付官网地址: 打开官网 服务器端如何拼接Orderinfo所需参数请看这篇文章.打开链接 安卓app集成阿里支付流程: 步骤一:下载aar和demo,并将aar添加到安卓项目依赖里.点击查看如 ...

最新文章

  1. C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放)
  2. awk取文本列_awk命令结构/内置变量/获取文本某行或某列
  3. 某资深程序员写给后来者的忠告
  4. 龙芯2h芯片不能进入pmon_国产处理器龙芯地址空间详解
  5. ios开发中遇到的文件和字符的问题大总结
  6. SparkStreaming 异常:java.lang.NoSuchMethodError: scala.Predef scope()Lscala/xml/TopScope
  7. android 缓存头像,android 实现类似微信缓存和即时更新好友头像示例
  8. ldap+ldap-account-manager+svn+apache+php做账号管理
  9. framework7的改进,以及与vue组合使用遇到的问题以及解决方法 (附vue的原理)
  10. 怎样利用Python制作守护进程
  11. JS 将图片编码BASE64
  12. android stuido 快捷键
  13. 阿里P7跳槽后曝光薪资截图:新公司月入税后五万多,很满足!
  14. Win8.1 KB2919355更新无法正常安装完成,解决办法?
  15. 单肩包属于什么类目_包包属于什么商标类目
  16. ink 合约篇(一)| 部署 ink 合约
  17. 蓝桥杯刷题,第四界省赛B组
  18. 计算机基础知识考试技巧,计算机二级考试Office应试技巧
  19. kratos 配置文件热更新
  20. 欧行漫记:参观华为欧洲研究所,感受华为海外研发人员的苦乐人生

热门文章

  1. 二道波哥-五分钟带你了解好省
  2. Unity之OpenXR+XR Interaction Toolkit实现 抓取物体
  3. [乐意黎转载]努力工作,能否脱贫致富?
  4. 手机连接不上adb ADB问题
  5. Git 中的stash功能
  6. Python DataType(数据类型)
  7. 甲骨文公司5月将推区块链平台
  8. java获取当前时间
  9. CDR利用修剪命令将文字一分为二的两种方法
  10. SketchUp中如何通过自定义工具条提升效率?