飞道科技

飞道科技文档总汇

Android微信支付配置

一、配置

注意, 配置示例中的xxxxx请根据自己的项目替换, 如android/app/src/main/AndroidManifest.xml文件的package="com.demo", 则 xxxxx就替换为demo

android/settings.gradle

rootProject.name = 'xxxxx'

// 添加以下配置
include ':react-native-device-info'
project(':react-native-device-info').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-device-info/android')
include ':@yyyyu_react-native-wechat'
project(':@yyyyu_react-native-wechat').projectDir = new File(rootProject.projectDir, '../node_modules/@yyyyu/react-native-wechat/android')

android/app/build.gradle

dependencies {
	// 添加以下配置
	implementation project(':react-native-device-info')
	implementation project(':@yyyyu_react-native-wechat')
	...
}

android/app/proguard-rules.pro

-keep class com.tencent.mm.sdk.** {
	*;
}

android/app/src/main/java/com/xxxxx/MainApplication.java

import com.learnium.RNDeviceInfo.RNDeviceInfo;
import com.rnlibrary.wechat.RNLWeChatPackage;


protected List<ReactPackage> getPackages() {
		return Arrays.<ReactPackage>asList(
			new MainReactPackage(),
			// 添加配置
			new RNDeviceInfo(),
			new RNLWeChatPackage(),
			...

android/app/src/main/java/com/xxxxx/ 下创建wxapi目录

img

wxapi目录下创建 WXEntryActivity.javaWXPayEntryActivity.java 文件

android/app/src/main/java/com/xxxxx/wxapi/WXEntryActivity.java

package com.xxxxx.wxapi;

import android.content.Intent;
import android.os.Bundle;

import com.xxxxx.MainActivity;
import com.rnlibrary.wechat.RNLWeChatDelegateActivity;

public class WXEntryActivity extends RNLWeChatDelegateActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent intent = new Intent(getApplicationContext(), MainActivity.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
		startActivity(intent);
	}
}

android/app/src/main/java/com/xxxxx/wxapi/WXPayEntryActivity.java

package com.xxxxx.wxapi;

import android.content.Intent;
import android.os.Bundle;

import com.xxxxx.MainActivity;
import com.rnlibrary.wechat.RNLWeChatDelegateActivity;

public class WXPayEntryActivity extends RNLWeChatDelegateActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent intent = new Intent(getApplicationContext(), MainActivity.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
		startActivity(intent);
	}
}

android/app/src/main/AndroidManifest.xml

		...
		<activity
			android:name="com.xxxxx.wxapi.WXEntryActivity"
			android:exported="true"
			android:label="@string/app_name" />
		<activity
			android:name="com.xxxxx.wxapi.WXPayEntryActivity"
			android:exported="true"
			android:label="@string/app_name" />
	</application>
</manifest>

二、使用

三、常见问题

3.1 调用支付只是闪一下,没有成功调用微信进行支付

是因为app的应用签名和微信开放平台配置的签名不一致。签名配置可参照文档