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目录
wxapi目录下创建 WXEntryActivity.java
和WXPayEntryActivity.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的应用签名和微信开放平台配置的签名不一致。签名配置可参照文档