通过React Native接入ZOLOZ SDK
ZOLOZ提供客户端SDK和服务端API,以便您将原生移动应用接入ZOLOZ服务。本文详细介绍通过React Native接入ZOLOZ SDK的完整流程。
有关ZOLOZ SDK的更多信息,详见使用原生App SDK模式接入。
环境准备
按照以下步骤安装JDK 17并检查:
- 使用Homebrew安装JDK 17。
copy
brew install openjdk@17- 安装完成后运行以下命令,检查JDK安装是否正确。
copy
java -version- 正确安装JDK后将显示如下信息。
copy
openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)接入步骤
步骤1:创建项目
根据React Native官方文档创建项目,详见Get Started Without a Framework。本文示例使用的是React Native 0.76版本。
copy
npm uninstall -g react-native-cli @react-native-community/cli
npx @react-native-community/cli@latest init AwesomeProject
cd AwesomeProject步骤2:安装依赖包
安装React Native所需的ZOLOZ插件。
copy
npm install react-native-zolozkit
npm install react-native-fs步骤3:Native配置
Android配置
- 在项目根目录运行以下命令,安装Android Gradle插件。
copy
npm install react-native-gradle-plugin- 修改Gradle配置。
- 在
android/build.gradle文件中添加以下配置。
copy
buildscript {
ext {
// ...
// 添加以下配置
Zolozkit_compileSdkVersion = compileSdkVersion
Zolozkit_minSdkVersion = minSdkVersion
Zolozkit_targetSdkVersion = targetSdkVersion
}
// ...
}- 在
android/gradle.properties文件中添加以下配置。
copy
android.enableJetifier=true- 添加其他Android依赖项。
如果使用React Native 0.76以下版本且项目启用了AndroidX,需要在android/app/build.gradle文件中添加localbroadcastmanager依赖项。
copy
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'iOS配置
- 配置Podfile。
在Podfile文件中添加pod 'zolozkit',文件路径通常为ios/Podfile。
copy
pod 'zolozkit', :source => 'https://github.com/zoloz-pte-ltd/zoloz-demo-ios'- 安装Pods。
copy
cd ios
bundle install
bundle exec pod install- 配置Xcode。
当您使用Xcode 15及以上版本且遇到链接问题(例如重复符号)时,需要手动添加编译选项解决该问题。
- 在Xcode中打开
XX.xcworkspace文件。 - 在Target > Build Settings > Other Linker Flags中添加以下链接器参数。
copy
-ld64步骤4:构建应用
首次构建需要安装Android依赖项,耗时大约几分钟,请耐心等待。
copy
npm start
npm run [android/ios]SDK使用说明
- 在React Native中导入
ZolozKit。
copy
import { NativeModules} from "react-native";
const { ZolozKit } = NativeModules;- 获取设备元信息。
使用ZolozKit的getMetaInfo方法获取ZOLOZ SDK和用户设备的元信息,该元信息将用于后续初始化交易。
copy
ZolozKit.getMetaInfo((metainfo) => {
console.log(metainfo)
});- 初始化交易。
商户移动App向商户服务器发送包含元信息的请求以初始化交易,商户服务器调用initialize API获取客户端配置,并将其返回给商户移动App。 - 启动交易流程。
使用步骤3中的clientcfg调用start方法启动交易流程,并重写回调函数处理交易结果。
copy
const { ZLZ_LOCAL_KEY, ZLZ_CHAMELEON_KEY, ZLZ_PUB_KEY } = ZolozKit.getConstants();
clientCfg = "the clientcfg from the third step"
ZolozKit.start(clientCfg, {
// 为ZOLOZ SDK添加业务参数,例如local
// [ZLZ_LOCAL_KEY]: "zh-CN"
}, (result) => {
alert(result, [{text: 'OK', onPress: () => console.log('OK Pressed!')},])
console.log(result);
})交易结果中包含标识交易流状态的结果码。当result返回true时,表示终端用户已成功完成整个交互流程。