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

npm npm

NativeScript PayPal

NativeScript 模块,用于通过官方 SDK 实现简单的 PayPal 付款。

Donate

许可证

MIT 许可证

平台

  • Android

路线图

安装

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

tns plugin add nativescript-paypal

AndroidManifest.xml

Android

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

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 文件,了解如何使用它。

否则...

使用方法

包含

在你的代码后包含该模块

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);
});