wftpay 0.0.1 wftpay: ^0.0.1 copied to clipboard
A new flutter plugin project.
wftpay #
A new flutter plugin project.
Getting Started #
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
TODO #
-
优能配置 使用优能提供的参数(appId、mch_id和key),无法成功吊起支付,提示支付类型未开通;使用威富通提供的参数,可以支付一次,再一次支付必须重装微信
-
回调未测试
使用前准备 #
1.Android需要用商户自己的包名和签名,并用自己的签名文件打包
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值,例如DEMO中的package="net.sourceforge.simcpux"
应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串
具体参照微信文档-APP端开发步骤-Android开发要点说明 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
2.IOS项目设置APPID
商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID
具体参照微信文档-APP端开发步骤-IOS开发要点说明 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
3.IOS项目设置plist
文本编辑Info.plist,在dict中添加下面key
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>wechat</string>
<string>mqq</string>
<string>mqqapi</string>
<string>alipay</string>
<string>alipayqr</string>
<string>alipays</string>
</array>
使用 #
// 获取当前设备版本号(dome原方法)
result = await Wftpay.platformVersion;
// 以下两个函数
// 返回0为支付成功,其它为失败
// -1 原因:支付错误,可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等
// -2 原因 用户取消,无需处理。发生场景:用户不支付了,点击取消,返回APP(ios没有这个判断)
// 支付
result = await Wftpay.wxPay({
'appId': '', // 微信应用appId
'token_id': '', // 通过请求服务器统一下单接口返回的参数,在小程序和H5中是一个Object,其中包含sign,nonce_str等参数,而在app中只需要用到其中的token_id即可
'amount': '1', // ios需要此参数,只用于扫码支付和付款码支付类型时客户端显示金额。不会参与交易计算,具体的交易金额以下单时候传入的金额为准。
});
// 支付测试,以下参数由威富通提供
// 与支付不同的是,测试支付不需要通过请求服务器统一下单接口返回的参数,而是在app中自己调用微信统一下单接口拿取数据
// 因此只提供测试使用,真实场景一定不能用这种方法,有泄漏密钥的风险,记得删除
result = await Wftpay.wxPayTest(
appId: 'wx2a5538052969956e', // 微信应用appId
mch_id: '755437000006', // 商户号
key: '7daa4babae15ae17eee90c9e', // 密钥
);
ios开发遇坑 #
1.如果遇到plist的报错,如下,在xcode-file-workspace setting中将build system设置为Legacy Build System(第二个)
我也不知道为什么
Multiple commands produce '/Users/mac/Library/Developer/Xcode/DerivedData/Runner-ahdzorlajnxaikghzbfwnbmlhtci/Build/Products/Debug-iphonesimulator/wftpay/Info.plist'
Multiple commands produce '/Users/mac/Library/Developer/Xcode/DerivedData/Runner-ahdzorlajnxaikghzbfwnbmlhtci/Build/Products/Debug-iphonesimulator/wftpay/Info-8.0+.plist'
参考文档 #
1.威富通移动支付开发文档 https://open.swiftpass.cn/openapi/doc?index_1=4&index_2=1&chapter_1=102&chapter_2=103
sdk和domo在这里下载
2.微信支付文档 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
介绍了一些重要的应用配置
3.flutter微信支付插件 https://github.com/lishuhao/sy_flutter_wechat
参考了一些写法
4.flutter插件开发官方文档 https://flutterchina.club/developing-packages/
5.插件发布翻墙 https://www.kikt.top/posts/flutter/package/publish-fail/