网上关于RN的支付宝支付组件大部分都是IOS的,Android要实现支付宝支付只剩下走原生这一步了。
整体思路:
1、在蚂蚁金服开放平台申请应用
2、在android原生集成支付宝
3、封装android原生
4、RN与android的通信
一、准备工作
1、在蚂蚁金服开放平台https://docs.open.alipay.com/204/105051/ 按照官方提示创建应用,添加app支付的功能。
2、在审核通过后可以拿到调用支付所需要的参数。
3、下载官方的Demo和SDKhttps://docs.open.alipay.com/54/104509
解压项目,用Android Studio打开alipay_demo项目,核心代码都在这个文件夹中。
二、项目操作
1、初始化zfbDemo的RN项目。并用Android Studio打开android部分。
2、在zfbDemo/android/app/目录下新建libs文件夹,将官网下载的alipay_demo中的libs下的sdk复制到新建的libs文件夹下。并右键 Add as Library添加到项目中。
3、在AndroidManifest.xml文件中加入注册声明:
和权限声明:
4、我们直接实现点击RN中的按钮调出支付宝支付页面。
创建一个类继承ReactContextBaseJavaModule,这个类放入被RN调用的方法封装成有个原生模块
新建一个MyNativeModule的类,内容:
package com.zfbdemo;
import android.content.Context;
import android.content.Intent;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
/**
* Created by admin on 2017/11/3.
*/
public class MyNativeModule extends ReactContextBaseJavaModule {
private Context mContext;
//构造方法
public MyNativeModule(ReactApplicationContext reactContext) {
super(reactContext);
mContext = reactContext;
}
@Override
public String getName() {
//MyNativeModule 需要此名字来调用该类方法
return "MyNativeModule";
}
//函数不能有返回值,被调用的原生代码是异步的,原生代码执行结束之后只能通过回调函数发送消息给RN
//rnCallNative为RN需要调用的方法
@ReactMethod
public void rn