flutter微信支付、微信授权登录、微信小程序、微信医保链接支付问题

1、微信开发者平台创建应用(略:这个网上有教程)


image.png

2、引入插件

  wechat_kit: ^1.1.2

3、配置
直接看文档提供的.
4、代码+解释

import 'package:wechat_kit/wechat_kit.dart';

class WeChatTool{
 WeChatTool._();
 static final tools=WeChatTool._();
 factory WeChatTool.getInstance() => tools;
///初始化
 Wechat init(){
   Wechat _weChatInit = Wechat() // 微信
     ..registerApp(
       appId:这里填上面图片获取到的appid,
       universalLink: 这里先填包名就行,下面ios有说到修改
     );
   return _weChatInit;
 }

///小程序
 miniProgram({String userName,String path}){
   init().launchMiniProgram(
       userName: userName, path:path);
 }

///微信支付
 weChatPay({String appId,partnerId,prepayId,package,nonceStr,timeStamp,sign}){
   init().pay(
     appId: appId,
     partnerId:partnerId,
     prepayId: prepayId,
     package: package,
     nonceStr:nonceStr,
     timeStamp:timeStamp,
     sign:sign,
   );
 }

///微信授权--并获取相关内容
 weChatAuthorize(){
   init().auth(scope:[WechatScope.SNSAPI_USERINFO]);
   init().authResp().listen((event)async {
     if(event.errorCode== WechatSdkResp.ERRORCODE_SUCCESS){
       WechatAccessTokenResp wechatAccessTokenResp=await  init().getAccessTokenUnionID(
           appId:上面第一张图的appid,
           appSecret:也在上面第一张图里,
           code: event.code
       );
         if(wechatAccessTokenResp.errcode==WechatSdkResp.ERRORCODE_SUCCESS){
           print(wechatAccessTokenResp.openid);
         }

     }
   });
 }

}

使用用例:

1.授权登录
  WeChatTool.tools.weChatAuthorize();
2.打开小程序
   WeChatTool.tools.miniProgram(userName: "gh_***********a", path: "pages/home/index");
userName:记得让小程序提供者给你小程序的id,path:进入小程序后要去到哪个页面
3、微信支付
大概做法:创建订单,拿到订单id再去请求接口返回微信支付所要的参数。然后再调用微信sdk支付,如下:
  WeChatTool.tools.weChatPay(
        appId: _payInfo.appId,
        partnerId: _payInfo.partnerId,
        prepayId: _payInfo.prepayId,
        package: _payInfo.package,
        nonceStr: _payInfo.nonceStr,
        timeStamp: _payInfo.timestamp,
        sign: _payInfo.sign,
      );

监听回调:
WeChatTool.tools.init().payResp().listen(void方法);
插件提供很多


image.png

IOS需要做的工作


image.png

如果刚开始没有的,修改添加就行。
这里的buildId需要注意,要跟你的申请证书一致


image.png

然后修改这里

      ..registerApp(
        appId:这里填上面图片获取到的appid,
        universalLink: 链接
      );

这个链接是你请求接口时的那个链接域名如(https://www.baidu.com/)。也是你开发者平台ios填的那个链接
(注意一点一定要是https的哦)
应该没了。。。。
补充:可能有人做医疗用到-->医保
插件这个方法是不行的,它可能可以打开其他一些链接(没得试),但医保链接是一定不行的,底层用的方法都不一样。
插件方法:

image.png

插件底层微信实现:
image.png

微信医保支付文档:
image.png

改:(我是直接改这个办法,也可以再写一个方法,不过得自己写通道)
image.png

注:ios也是两行而已,文档看着改就行。
最后就是把插件下载下来,在pubspec.yaml本地应用,或者下载完把插件传到自己的giuhub,同样在pubspec.yaml引用。

你可能感兴趣的:(flutter微信支付、微信授权登录、微信小程序、微信医保链接支付问题)