1、微信开发者平台创建应用(略:这个网上有教程)
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:<String>[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方法);
插件提供很多
IOS需要做的工作
如果刚开始没有的,修改添加就行。
这里的buildId需要注意,要跟你的申请证书一致
然后修改这里
..registerApp(
appId:这里填上面图片获取到的appid,
universalLink: 链接
);
这个链接是你请求接口时的那个链接域名如(https://www.baidu.com/)。也是你开发者平台ios填的那个链接
(注意一点一定要是https的哦)
应该没了。。。。
补充:可能有人做医疗用到-->医保
插件这个方法是不行的,它可能可以打开其他一些链接(没得试),但医保链接是一定不行的,底层用的方法都不一样。
插件方法:
插件底层微信实现:
微信医保支付文档:
改:(我是直接改这个办法,也可以再写一个方法,不过得自己写通道)
注:ios也是两行而已,文档看着改就行。
最后就是把插件下载下来,在pubspec.yaml本地应用,或者下载完把插件传到自己的giuhub,同样在pubspec.yaml引用。