nativeScript-paypal2
一个提供访问 PayPal SDK 的 NativeScript 模块。
npm i --save nativescript-paypal2

npm npm

NativeScript PayPal

一个用于实现简单 PayPal 结账的 NativeScript 模块,使用官方 SDK

Donate

许可证

MIT 许可证

平台

  • Android

路线图

安装

在您的应用项目内部运行以安装模块。

tns plugin add nativescript-paypal

AndroidManifest.xml

Android

确保在您的 manifest 文件中定义以下权限、活动和其他数据

app.gradle

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

<uses-feature android:name="android.hardware.camera"
android:required="false" />

<uses-feature android:name="android.hardware.camera.autofocus"
android:required="false" />


<application>
<activity android:name="com.paypal.android.sdk.payments.PaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.LoginActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentMethodActivity" />
<activity android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity" />
<activity android:name="com.paypal.android.sdk.payments.PayPalFuturePaymentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentConsentActivity" />
<activity android:name="com.paypal.android.sdk.payments.FuturePaymentInfoActivity" />
<activity android:name="io.card.payment.DataEntryActivity" />

<service android:name="com.paypal.android.sdk.payments.PayPalService"
android:exported="false" />

</application>

</manifest>

确保在您的项目的 app/App_Resources/Android/app.gradle 文件中包含对 PayPal SDK 的引用。

演示

dependencies {
// PayPal
compile 'com.paypal.sdk:paypal-android-sdk:2.14.2'
}

快速入门

查看 demo/app/main-view-model.js 文件和 demo 应用程序,了解其工作原理。

否则...

用法

包含

在代码背后包含该模块

var PayPal = require("nativescript-paypal");

初始化

初始化环境

function onPageLoaded(args) {
PayPal.init({
clientId: '<YOUR-CLIENT-ID>'
});
}
exports.onPageLoaded = onPageLoaded;

提交给 PayPal.init 函数的(可选)对象具有以下结构

属性

名称 描述
acceptCreditCards [可选] 接受信用卡或不接受。默认:(true)
account [可选] 定义有关账户的信息。
clientId 您的应用在 PayPal 开发者门户 中生成的 PayPal ID。
defaults [可选] 定义默认数据。
environment [可选] 要使用的环境。可能的值是:0 = ENVIRONMENT_SANDBOX1 = ENVIRONMENT_PRODUCTION2 = ENVIRONMENT_NO_NETWORK
onActivityResult [可选] 为底层的 Android 活动中的 Activity.onActivityResult 方法提供逻辑,该活动用于调用其他模块的逻辑,例如
rememberUser [可选] 记住上次用户以进行下一次付款或不记住。默认:(true)
requestCode [可选] 要使用的自定义请求代码(例如,对于 Activity.onActivityResult Android 方法)。默认:230958624
account

“account”对象具有以下结构

属性
名称 描述
name [可选] 商户的名称。
privacyPolicy [可选] 商户隐私政策的 URI。
userAgreement [可选] 商户用户协议的 URI。
defaults

“defaults”对象具有以下结构

属性
名称 描述
userEmail [可选] 默认用户电子邮件。
userPhone [可选] 默认用户电话。
userPhoneCountryCode [可选] 默认用户电话国家代码。

开始支付

function buyProduct(args) {
// configure
var payment = PayPal.newPayment()
.setDescription('My product')
.setAmount(59.79);

// start checkout / payment
payment.start(function(cbResult) {
switch (cbResult.code) {
case 0:
// SUCCESS
// pay key is stored in 'cbResult.key'
break;

case 1:
// operation was CANCELLED
break;

case -1:
// checkout FAILED
break;

case -2:
// "unhandled exception"
break;
}
});
}
exports.buyProduct = buyProduct;

PayPal.newPayment 函数创建的 payment 对象具有以下结构。

方法

名称 描述
getAmount 获取价格。示例:var a = payment.getAmount();
getBnCode 获取 BN 代码。示例:var bc = payment.getBnCode();
getCurrency 获取要使用的自定义货币。示例:var c = payment.getCurrency();
getCustom 获取支付的自定义值。示例:var c = payment.getCustom();
getDescription 获取(简短)描述。示例:var d = payment.getDescription();
getDetails 获取包含支付详情的对象。示例:var d = payment.getDetails();
getInvoiceNumber 获取自定义发票号。示例:var i = payment.getInvoiceNumber();
setAmount 设置价格。示例:payment.setAmount(1.25);
setBnCode 设置BN代码。示例:payment.setBnCode('您的BN代码');
setCurrency 设置要使用的自定义货币。示例:payment.setCurrency('EUR');
setCustom 设置支付的自定义值。示例:payment.setCustom('MY-PRODUCT-ID');
setDetails 设置详情(运输、小计 & 税费)。示例:payment.setDetails(4.95, 199.99, 1.19);
setDescription 设置(简短)描述。示例:payment.setDescription('这真是太棒了!');
setInvoiceNumber 设置自定义发票号。示例:payment.setInvoiceNumber('MY_INVOICE-666');
start 开始支付/结账过程。
start

提交给 payment.start 方法的回调函数接收一个包含以下属性的对象

名称 描述
code 结果代码。 0 = 成功, -3 = JSON 解析错误, -2 = 未处理的异常, -1 = 结账失败, 1 = 已取消, 2 = 无确认数据, 3 = 无JSON数据
key 支付的键(如果 code = 0

增强功能

日志记录

如果您想获取模块的日志输出,可以使用 PayPal.addLogger 函数添加一个回调函数,该回调函数接收来自模块的消息

PayPal.addLogger(function(msg) {
console.log('[nativescript-paypal]: ' + msg);
});