- 版本:6.6.2
- GitHub: https://github.com/triniwiz/nativescript-stripe
- NPM: https://npmjs.net.cn/package/nativescript-stripe
- 下载
- 昨天:1
- 上周:2
- 上个月:95
安装
需要 iOS 9.x 及以上
NativeScript 4x
tns plugin add nativescript-stripe
NativeScript 3x
tns plugin add [email protected]
NativeScript 2x
tns plugin add [email protected]
配置
Android
使用 Stripe Android v10.2.1 SDK
iOS
使用 Stripe iOS 19.0.1 SDK (pod)
Angular
要在 Angular 中使用 Custom Integration 的 CreditCardView,请将 Angular 包装器在主模块(通常是 app.module.ts
)中注册,如下所示
...
import { CreditCardViewModule } from "nativescript-stripe/angular";
...
@NgModule({
imports: [
...
CreditCardViewModule,
...
],
...
})
export class AppModule { }
用法
重要:确保在 Page 标签中包含 xmlns:stripe="nativescript-stripe"
从视图中使用
<stripe:CreditCardView id="card"/>
向卡中添加额外详细信息
JavaScript
const ccView = page.getViewById("card");
const cc = ccView.card;
cc.name = "Osei Fortune";
TypeScript
import { CreditCardView, Card } from 'nativescript-stripe';
const ccView:CreditCardView = page.getViewById("card");
const cc:Card = ccView.card;
cc.name = "Osei Fortune";
从代码中调用
import { Card } from 'nativescript-stripe';
const cc = new Card("1111111111111111",2,18,"123");
cc.name = "Osei Fortune";
标准集成
demo
和 demo-angular
文件夹包含使用标准集成的示例。它们可以作为起点使用,并提供有关如何调用标准集成组件的信息。有关更多信息,请参阅示例文件夹中的 README。
设置 Stripe 配置值
StripeConfig.shared().backendAPI = <Your API Service>;
StripeConfig.shared().publishableKey = <Your Stripe Key>;
StripeConfig.shared().companyName = <Your Company Name>;
// To support Apple Pay, set appleMerchantID.
StripeConfig.shared().appleMerchantID = <Your Apple Merchant ID>;
创建客户会话
let customerSession = new StripeCustomerSession();
创建支付会话
let paymentSession = new StripePaymentSession(page, customerSession, price, "usd", listener);
有关更多信息,请参阅 Stripe 文档。
强大的客户身份验证
欧洲的 PSD2 规则将要求某些信用卡购买进行 强大的客户身份验证。Stripe 支持此功能,尽管实现此功能的大部分工作需要在后端服务器和移动应用程序中进行,而不仅仅是 nativescript-stripe
插件。
要支持 SCA,请按照 iOS 和 Android 的说明使用 PaymentIntents
而不是令牌与您的后端服务器交互。 nativescript-stripe
插件具有跨平台的数据结构和方法调用,可能有助于。在 index.d.ts
中查看
PaymentMethod
和相关类StripePaymentIntent
和相关类- 方法
Stripe.createPaymentMethod
、Stripe.retrievePaymentIntent
、Stripe.confirmPaymentIntent
和Stripe.confirmSetupIntent
处理次要客户输入
SCA 要求客户在使用某些信用卡时输入额外信息。如果正确处理从服务器返回的 StripePaymentIntent
中的重定向,Stripe 将负责此操作。
如果您使用的是 自动确认流程,则 confirmPaymentIntent
和 confirmSetupIntent
将自动管理 SCA 验证,通过显示和验证支付认证。
如果您使用的是 手动确认流程,其中后端创建 PaymentIntent
|SetupIntent
并需要客户进行 Intent 认证,则 authenticatePaymentIntent
和 authenticateSetupIntent
允许在将 Intent 发送回您的服务器之前管理该额外步骤。
状态
demo-angular
现在支持 SetupIntent
和 PaymentIntent
SCA 集成。任何信用卡验证都将自动提示用户。
已知问题
const enum
未找到
使用NativeScript v6构建时,它将以“transpileOnly”模式使用仅webpack的流程。一个webpack 问题 意味着在最终输出中找不到 const enum
值。
这个问题在Angular项目中不存在,如果你没有使用任何导出的枚举,可能也不会成为问题。
不幸的是,我找到的唯一修复方法是遵循该问题中的建议,并将你的应用程序中的 webpack.config.js
中的 transpileOnly
设置为 false
。
注意:一旦修复了这个TypeScript 错误,可能就不再需要这样做。
待办事项
- Android Pay
- Apple Pay(由标准集成支持,不由自定义集成支持)