網(wǎng)上很多教程講Unity接入微信支付的方法多是接入以前的微信支付SDK,但是因?yàn)橐盐⑿殴俜揭呀?jīng)改用gradle形式守问,將SDK發(fā)布到 Maven Central。如果直接在在build.gradle文件中,根據(jù)官方提示添加如下依賴:
dependencies {
? ? api 'com.tencent.mm.opensdk:wechat-sdk-android:+'
}
雖然Android Studio里可以正常編譯霎奢,但是Make Project后導(dǎo)出的aar包不含微信SDK益愈。
所以梢灭,我的解決方法還是采用把a(bǔ)rr包放入Android工程Libs本地的的方式夷家。
想辦法找到了wechat-sdk-android-6.8.0.aar,然后粘貼到App/Libs文件夾敏释。因?yàn)榫W(wǎng)上很多教程都是講導(dǎo)入的是jar格式的微信SDK库快,現(xiàn)在我們導(dǎo)入的是aar格式,App的Gradle文件還要稍微修改一下——
apply plugin: 'com.android.library'
//默認(rèn)以arr形式輸出
android {
????compileSdkVersion 29
????defaultConfig {
????????minSdkVersion 16
????????targetSdkVersion 29
????????versionCode 1
????????versionName "1.0"
//????????testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
????}
????buildTypes {
????????release {
????????????minifyEnabled false
????????????proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
????????}
????}
}
repositories{
????flatDir{
????????dirs 'libs'
????}
}
dependencies {
????implementation fileTree(dir: 'libs', include: ['*.jar'])
????implementation 'androidx.appcompat:appcompat:1.0.2'
????implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
????testImplementation 'junit:junit:4.12'
????androidTestImplementation 'androidx.test.ext:junit:1.1.0'
????androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
????implementation files('libs\\classes.jar')
????implementation (name: 'wechat-sdk-android-6.8.0', ext: 'aar')
}
Make Project導(dǎo)出aar包后钥顽,用壓縮軟件打開里面的AndroidManifest.xml义屏,修改如下——
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
????xmlns:tools="http://schemas.android.com/tools"
package="你的包名"
????android:versionCode="1"
????android:versionName="1.0" >
????<uses-sdk
????????android:minSdkVersion="15"
????????android:targetSdkVersion="29" />
????<!-- 申請(qǐng)網(wǎng)絡(luò)訪問權(quán)限 -->
????<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.WRITE_EXTERNAL_STORAGE" />
????<application
????????android:allowBackup="true"
????????android:icon="@drawable/app_icon"
????????android:label="@string/app_name"
????????android:supportsRtl="true"
????????android:theme="@style/UnityThemeSelector"
????????tools:replace="android:icon, android:theme"????????>
????????<activity
????????????android:name="你的包名.MainActivity"
????????????android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"
????????????android:exported="true"
????????????android:launchMode="singleTask"
????????????android:noHistory="false" >
????????????<intent-filter>
????????????????<action android:name="android.intent.action.MAIN" />
????????????????<category android:name="android.intent.category.LAUNCHER" />
????????????</intent-filter>
????????</activity>
????????<activity
????????????android:name="你的包名.wxapi.WXPayEntryActivity"
????????????android:exported="true"
????????????android:launchMode="singleTop" />
????????<activity
????????????android:name="你的包名.wxapi.WXEntryActivity"
????????????android:exported="true"
????????????android:launchMode="singleTop" />
????</application>
</manifest>
注意,如果最后發(fā)生微信支付可以調(diào)用蜂大,但支付回調(diào)和分享都不能調(diào)用的情況闽铐,很有可能是activity聲明里的“.wxapi”漏了。
最后奶浦,把Android Studio生成并經(jīng)過處理的aar包和wechat-sdk-android-6.8.0.aar一起導(dǎo)入到Unity工程中兄墅,就可以正常調(diào)用微信開放功能了。
具體接入微信支付的教程澳叉,大家可以自己網(wǎng)上找資料隙咸,有很多,這里我就不詳細(xì)敘述了成洗。