nativescript-fortumo-sms
一个提供对 Fortumo SMS 网关访问的 NativeScript 模块。
npm i --save nativescript-fortumo-sms

npm npm

NativeScript fortumo SMS

一个 NativeScript 模块,提供对 Fortumo SMS 网关 的访问。

Donate

许可证

MIT 许可证

平台

  • Android

安装

运行

tns plugin add nativescript-fortumo-sms

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

Android

AndroidManifest.xml

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

<?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_NETWORK_STATE" />

<!-- Open Stores -->
<uses-permission android:name="org.onepf.openiab.permission.BILLING" />
<!-- Google -->
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Nokia -->
<uses-permission android:name="com.nokia.payment.BILLING" />
<!-- Samsung -->
<uses-permission android:name="com.sec.android.iap.permission.BILLING" />
<!-- Fortumo -->
<uses-feature android:name="android.hardware.telephony"
android:required="false" />

<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- SlideME -->
<uses-permission android:name="com.slideme.sam.manager.inapp.permission.BILLING" />
<!-- Skubit -->
<uses-permission android:name="com.skubit.BILLING" />

<application>
<!-- Amazon -->
<receiver android:name="com.amazon.device.iap.ResponseReceiver">
<intent-filter>
<action android:name="com.amazon.inapp.purchasing.NOTIFY"
android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY" />

</intent-filter>
</receiver>
<!-- Amazon -->

<!-- Fortumo -->
<receiver android:name="mp.MpSMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>

<service android:name="mp.MpService" />
<service android:name="mp.StatusUpdateService" />

<activity android:name="mp.MpActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />

<!-- Fortumo -->
</application>

</manifest>

示例

要快速开始,请查看 示例/app/main-view-model.js 文件,了解其工作原理。

否则 ...

用法

包含

在您的代码-behind 中包含模块

var FortumoSMS = require('nativescript-fortumo-sms');

初始化

初始化环境

function onPageLoaded(args) {
FortumoSMS.init();
}
exports.onPageLoaded = onPageLoaded;

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

属性

名称 描述
onActivityResult [可选] 对于用于调用其他模块逻辑的底层 Android 活动中的 Activity.onActivityResult 方法,提供逻辑
requestCode [可选] 要使用的自定义请求代码(例如,用于 Activity.onActivityResult Android 方法)。默认:198612227

启动购买

function buyProduct(args) {
// configure
var purchase = FortumoSMS.newPurchase()
.setId('<PRODUCT-ID>')
.setName('test product')
.setSecret('<APP-SECRET>')
.setDisplayName('A test product')
.setAmount('1.95')
.setCurrency('USD');

// start purchase
purchase.start(function(cbResult) {
switch (cbResult.code) {
case 0:
// SUCCESS
break;

case 1:
// CANCELLED
break;

case 2:
// FAILED
break;

case 3:
// PENDING
break;

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

FortumoSMS.newPurchase 函数创建的 purchase 对象具有以下结构。

方法

名称 描述
isConsumable 获取产品是否可消费。示例:var c = purchase.isConsumable();
getAmount 获取价格。示例:var a = purchase.getAmount();
getCreditsMultiplier 获取积分乘数。示例:var m = purchase.getCreditsMultiplier();
getCurrency 获取货币。示例:var c = purchase.getCurrency();
getId 获取产品 ID。示例:var id = purchase.getId();
getName 获取产品名称。示例:var n = purchase.getName();
getSecret 获取应用程序密钥。示例:var s = purchase.getSecret();
setAmount 设置价格。示例:payment.setAmount('1.25');
setCreditsMultiplier 设置积分乘数。示例:purchase.setCreditsMultiplier(1.23);
setCurrency 设置货币。示例:purchase.setCurrency('USD');
setId 设置产品 ID。示例:purchase.setId('<PRODUCT-ID>');
setIfConsumable 设置产品是否可消费。示例:purchase.setIfConsumable(true);
setName 设置产品名称。示例:purchase.setName('My product');
setSecret 设置应用程序密钥。示例:purchase.setSecret('<APP-SECRET>');
start 开始购买流程。
start

提交给 purchase.start 方法的回调函数接收一个具有以下属性的对象

名称 描述
账单状态 账单状态(如果 code = 0
code 结果代码。 0 = 成功,-1 = 未处理的异常,1 = 已取消,2 = 失败,3 = 待处理
credit.amount 信用额度金额(如果 code = 0
credit.currency 信用额度名称(如果 code = 0
message.id 消息ID(如果 code = 0
payment.code 支付代码(如果 code = 0
price.amount 价格金额(如果 code = 0
price.currency 价格货币(如果 code = 0
product.name 产品名称(如果 code = 0
service.id 服务ID(如果 code = 0
sku SKU(如果 code = 0
user.id 用户ID(如果 code = 0

增强功能

日志记录

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

FortumoSMS.addLogger(function(msg) {
console.log('[nativescript-fortumo-sms]: ' + msg);
});