【发布时间】:2015-07-06 09:30:17
【问题描述】:
我正在构建一个向某人付费的 android 应用程序。我探索了 Stripe Connect,它有一个 API 和网站流程,需要显示一个条带连接按钮,还需要一个重定向 uri。
但是,我在 Android 上找不到任何允许显示连接按钮并提示用户在 Android 设备上本地创建或连接条带帐户的东西。我应该使用 webview 来执行此操作还是有更优雅的方式来执行此操作?
【问题讨论】:
我正在构建一个向某人付费的 android 应用程序。我探索了 Stripe Connect,它有一个 API 和网站流程,需要显示一个条带连接按钮,还需要一个重定向 uri。
但是,我在 Android 上找不到任何允许显示连接按钮并提示用户在 Android 设备上本地创建或连接条带帐户的东西。我应该使用 webview 来执行此操作还是有更优雅的方式来执行此操作?
【问题讨论】:
据我所知,没有用于移动条带连接的原生 SDK。我为android做了webview路由。是微不足道的,但我同意我希望有一个更优雅的解决方案。
对于那些想知道如何做到这一点的人(因为我在那里找不到任何文档),给你:
创建一个按钮,该按钮将打开一个带有 Web 视图的新意图。
webview 应该加载 oauth/authorize 端点(“https://connect.stripe.com/oauth/authorize?response_type=code&client_id=[YOUR_API_KEY]&scope=read_write”)。不要忘记在您的 webview 上启用 javascript。
一旦 webview 中的表单填写完毕,如果授权成功,Stripe 将重定向到您提供的带有授权码的 redirect_url。让您的网络服务解析该授权代码。
让您的服务通过提供授权类型、客户端 ID、代码和客户端秘密来发布 oauth/token 条带化。
然后,Stripe 将返回您需要的令牌(身份验证凭据)。将其存储起来以备后用,您就大功告成了。
【讨论】:
我知道这是一个很老的问题,但是,在投入了我 2 天的时间并尝试之后,在 android 平台上搜索了很多创建条带帐户的技术后,我找到了解决我的问题的 Stripe API...
首先,这是您必须包含在项目中的jar 文件。 然后你必须在仪表板上初始化你提供的密钥
Stripe.apiKey = "sk_test_xxxxxxxxxxxxxxxxxxxxxxxx";
RequestOptions requestOptions = RequestOptions.builder()
.setApiKey("sk_test_xxxxxxxxxxxxxxxxxxxxxxxx").build();
Map<String, Object> accountParams = new HashMap<String, Object>();
accountParams.put("managed", false);
accountParams.put("country", "US");
accountParams.put("email", "some@email.com");
要创建一个帐户,请使用 Account 类的 create() 方法和参数 create link
try {
Account create = Account.create(accountParams, null);
} catch (AuthenticationException e) {
e.printStackTrace();
}
然后通过retrieve()方法获取账户明细传递账户id
try {
Account detail = Account.retrieve("acct_xxxxxxxxxxxxxx", null);
} catch (AuthenticationException e) {
e.printStackTrace();
}
您可以在Stripe Android API 找到更多信息,是的,如果我错了,请纠正我..
您需要捕获的异常
AuthenticationException、InvalidRequestException、APIConnectionException、CardException、APIException
【讨论】: