美文网首页Flutter
Flutter实现微信支付

Flutter实现微信支付

作者: 苏坡坡要吃婆婆酥 | 来源:发表于2020-08-23 09:54 被阅读0次
    序言

    先在微信开放平台创建好app,按要求配置完成。

    Flutter项目中配置

    fluwx: ^1.2.1+1

    Android项目中配置

    在android中的gradle配置自己签名文件
    将签名文件可以放入android中的根目录

     signingConfigs {
            release {
                storeFile file("$rootDir/xxx.jks")
                storePassword "666666"
    
                keyAlias "xxx"
                keyPassword "666666"
            }
            debug {
                storeFile file("$rootDir/xxx.jks")
                storePassword "666666"
    
                keyAlias "xxx"
                keyPassword "666666"
            }
        }
    
        buildTypes {
            release {
                signingConfig signingConfigs.release
            }
            debug {
                signingConfig signingConfigs.debug
            }
        }
    
    1. 在app的gradle中依赖微信库
    dependencies {
        implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
    }
    
    1. 在app的包下创建一个微信支付回调页面
    public class WXPayEntryActivity extends Activity {
    }
    
    1. 在根目录创建wxapi文件夹,将创建好的WXPayEntryActivity的页面放入。
    image.png
    1. 在AndroidManifest中配置,放入application中即可
    // 注意 xxx.xxx.xxx 为自己包名
    // android:scheme="wx5c3f489a3bffbff1" 替换为自己在微信开放平台创建的app的应用id
     <activity
                android:name="xxx.xxx.xxx.wxapi.WXPayEntryActivity"
                android:exported="true"
                android:launchMode="singleTop">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                    <data android:scheme="wx5c3f489a3bffbff1"/>
                </intent-filter>
            </activity>
    
    // 注意看有没有配置权限
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <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" />
    
    Flutter项目中使用
      void toWxPay() async {
       var isInstalled = await fluwx.isWeChatInstalled();
    
        if (!isInstalled) {
          ToastUtil.toast("请先安装微信");
        }
    
        // 将下面这些参数替换成后台返回的即可
        var payRes = await fluwx.pay(
          appId: "wx5c3f489a3bffbff1",
          partnerId: "1581194221",
          prepayId: "wx20204148634195534427abd2eac5680000",
          packageValue: "Sign=WXPay",
          nonceStr: "QQZMB4ZQL3784HMKDBZVAGVATNY83I7U",
          timeStamp: 1597927308,
          sign: "327B443E4591CD2AD05C340CEE90CC2E",
        );
    
        // 支付回调
        // 一般情况下打开微信支付闪退,errCode为 -1 ,多半是包名、签名和在微信开放平台创建时的配置不一致。
        fluwx.responseFromPayment.listen((data) {
          print(data.errCode);
          if (data.errCode == 0) {
            ToastUtil.toast("微信支付成功");
            Navigator.of(context).pop();
          } else {
            ToastUtil.toast("微信支付失败");
          }
        });
      }
    
    

    相关文章

      网友评论

        本文标题:Flutter实现微信支付

        本文链接:https://www.haomeiwen.com/subject/lwrijktx.html