1.1.0 • Published 8 years ago

itppay-react-native v1.1.0

Weekly downloads
3
License
ISC
Repository
-
Last release
8 years ago

itppay-react-native

itppay-react-native是智付云(ITPPay)旗下面向React-Native的移动端支付产品,通过接入本产品,能够快速集成支付宝支付、微信支付以及银联快捷支付,集成过程简单快捷,是专为移动端定制的新一代支付产品。

1. 渠道支撑

智付云为互联网开发者提供了如下支付渠道:

  • 支付宝
  • 微信支付
  • 银联快捷支付

2. 接入流程

2.1 下载itppay-react-native

react-native install itppay-react-native --save

2.2 引用及关联

link命令可以将安装的itppay-react-native关联到Android项目与iOS项目。

react-native link itppay-react-native

如果React-Native版本低于0.29,请使用rnpm link代替react-native link命令。

2.3 接入准备

2.3.1 Android接入准备

1.在Android项目的AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <!-- 银联快捷支付 -->
<uses-permission android:name="org.simalliance.openmobileapi.SMARTCARD" />
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc.hce"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="org.simalliance.openmobileapi.SMARTCARD" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

2.在Android项目的AndroidManifest.xml中注册Activity

若需要接入微信支付,请将WXPayEntryActivity.java导入到您申请官方微信使用的packageName/wxapi包下,并将其中的"您的官微申请的appid"参数替换为您在官方微信申请的appid。WXPayEntryActivity.java文件存放在itppay-react-native项目的根目录与example/ITPPayDemoApp的Android项目中

<activity
    android:name="com.unionpay.uppay.PayActivity"
    android:configChanges="orientation|keyboardHidden|keyboard"
    android:screenOrientation="portrait">
</activity>

<activity
    android:name="com.unionpay.UPPayWapActivity"
    android:configChanges="orientation|keyboardHidden|fontScale"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustResize" >
</activity>
<!-- 支付宝 -->
<activity
    android:name="com.alipay.sdk.app.H5PayActivity"
    android:configChanges="orientation|keyboardHidden|navigation"
    android:exported="false"
    android:screenOrientation="behind" >
</activity>
<activity
    android:name="com.alipay.sdk.auth.AuthActivity"
    android:configChanges="orientation|keyboardHidden|navigation"
    android:exported="false"
    android:screenOrientation="behind" >
</activity>

<!-- 智付云自有-->
<activity
    android:name="com.tech.dlpaysdk.activity.DLWebView"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:windowSoftInputMode="adjustUnspecified|stateHidden" >
</activity>
<activity
    android:name="com.tech.dlpaysdk.activity.NoView"
    android:theme="@android:style/Theme.Translucent"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:windowSoftInputMode="adjustUnspecified|stateHidden" >
</activity>

<!--微信-->
 <activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:theme="@android:style/Theme.NoDisplay"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:launchMode="singleTop"
    android:windowSoftInputMode="adjustUnspecified|stateHidden" >
</activity>

若您仅需要接入Android端,请直接查看Android示例

2.3.2 iOS接入准备

打开xcode,TARGET -> General -> Linked Frameworks and Libraries ,添加添加所需依赖 Frameworks:

CFNetwork.framework
SystemConfiguration.framework
Security.framework
QuartzCore.framework
CoreTelephony.framework
CoreMotion.framework
CoreLocation.framework
UIKit.framework
libc++.tbd
libz.tbd
libsqlite3.tbd
<key>
    LSApplicationQueriesSchemes
</key>
<array>
    <string>weixin</string>
    <string>wechat</string>
    <string>alipay</string>
    <string>alipays</string>
    <string>uppaysdk</string>
    <string>uppaywallet</string>
    <string>uppayx1</string>
    <string>uppayx2</string>
    <string>uppayx3</string>
    <string>mqqwallet</string>
</array>

2.为了用户操作完成后能够跳转回你的应用,请务必添加 URL Schemes:在 Xcode 中,选择你的工程设置项,选中 TARGETS 一栏,在 Info 标签栏的 URL Types 添加 URL Schemes,如果使用微信,填入微信平台上注册的应用程序 id(为 wx 开头的字符串)。如果不使用微信,则自定义,建议起名稍复杂一些,尽量避免与其他程序冲突。允许英文字母和数字,首字母必须是英文字母,不允许特殊字符。

3.iOS 9 限制了 http 协议的访问,如果 App 需要访问 http://,需要在 Info.plist 添加如下代码:

<key>
    NSAppTransportSecurity
</key>
<dict>
    <key>
        NSAllowsArbitraryLoads
    </key>
    <true/>
</dict> 

若您仅需要接入iOS端,请直接查看iOS示例

2.4 接入示例

2.4.1 模块引入

var itppay = require("itppay-react-native");

2.4.2 Android接入示例

/**
 * 引入模块 itppay-react-native
 */
var itppay = require("itppay-react-native");

var orderNo = new Date().getTime()+"";

var tpParam = {
				appid: '0000000022',
				appkey: 'e7d4c31780d1379c6af38f82e455967c',
				subject: 'test goods',
				amount: '1',
				body: 'testonetest',
				mchntOrderNo: orderNo,
				notifyUrl: 'http://www.baidu.com',
				cpChannel: '',
				description: '',
				extra: '',
				payStyle: itppay.ALIPAY,//支付方式,具体含义见支付通道常量列表
			 };
			 
/*
 * 调起itppay支付
 * tpParam:支付参数
 * function(payResultCode,msg):支付结果回调函数
 * payResultCode:商户端返回码,msg:回调信息
 */
itppay.dlPay(   
                tpParam,
				function(payResultCode,msg){//payResultCode:支付结果返回码,具体见支付结果返回码列表
					ToastAndroid.show("react-result:" + payResultCode+""+msg, ToastAndroid.SHORT);
				}
			);

2.4.3 iOS接入示例

 /**
 * 引入模块 itppay-react-native
 */
var itppay = require("itppay-react-native");

var orderNo = new Date().getTime()+"";

var tpParam = {
				appid: '0000000022',
				appkey: 'e7d4c31780d1379c6af38f82e455967c',
				subject: 'test goods',
				amount: '1',
				body: 'testonetest',
				mchntOrderNo: orderNo,
				notifyUrl: 'http://www.baidu.com',
				cpChannel: '',
				description: '',
				extra: '',
				payStyle: itppay.ALIPAY,//支付方式,具体含义见itppay常量列表
				appScheme:"YOU-URLSCHEME",
			 }


/*
 * 调起itppay支付
 * tpParam:支付参数
 * function(payResultCode,msg):支付结果回调函数
 * payResultCode:商户端返回码,msg:回调信息
 */
itppay.dlPay(tpParam,function(payResultCode,msg){

    alert(JSON.stringify(payResultCode));

});

    
    

具体代码如下:

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [[NSNotificationCenter defaultCenter] postNotificationName:[QJPaySDK WETCHAR] object:nil];
}

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    [QJPaySDK handleOpenWeChatURL:url];
    [QJPaySDK handleOpenQQURL:url];
    return [QJPaySDK handleOpenURL:url];
}

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    [QJPaySDK handleOpenWeChatURL:url];
    [QJPaySDK handleOpenQQURL:url];
    return [QJPaySDK handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [QJPaySDK handleOpenWeChatURL:url];
}

3. 参数

支付参数列表

名称类型含义最大长度(位)备注
amountstring订单金额12必填
appidstring交易发起所属App固定必填,在智付云平台上申请获得
appkeystring交易发起所属AppKey固定必填,在智付云平台上申请获得
amountstring订单金额12必填
bodystring商品描述128必填
cpChannelstringCP分发渠道128非必填,由商户自定义
descriptionstring订单附加描述128非必填
extrastring附加数据128非必填,以键值对形式存放
mchntOrderNostring商户订单号64必填,且商户端必须唯一
notifyUrlstring订单支付结果通知地址64必填,用于接受订单支付结果通知,必须以http或https
payStylestring支付方式64必填,值见itppay常量列表
subjectstring商品名称64必填

支付通道常量列表

常量值支付方式
itppay.ALIPAY支付宝
itppay.WECHAT微信支付
itppay.UNIONPAY银联快捷支付

支付结果返回码列表

返回码含义
-1支付失败
0支付成功
1用户取消支付
2待支付

4. 技术支持

  1. 您可以在智付云平台了解我们的产品,在网站上注册商户,并寻求技术支持。

  2. 您可以在智付云官网的帮助中心查阅相关资料,了解相关问题的解决方案。

  3. 如果您有其他问题,也可以联系我们

1.1.0

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago