flutter关于调起微信支付及支付宝支付相关问题

近期做了关于flutter的商城项目 有调用到flutter唤醒支付宝及微信的支付功能

多余的不多说 分享一下自己踩坑经过(支付的都是关于安卓端的)

包名

支付宝 : tobias 微信 fluwx  

支付宝这里不多数官方讲解很清楚

这里重点说一下关于微信方面的问题 很重要很重要很重要 一定要区分开发包和正式打包因为他们打包生成的应用签名是不一样的 

在用真机调试时应用是这直接通过USB安装的  这里一定要用工具Gen_Signature_Android2.apk 查看一下真机调试的时安装的应用签名 该工具可百度搜索 然后要在微信支付方面配置时签名不要写错 否则一定调起失败  

那么再用flutter build apk 后这里打包出来的apk则就是正式应用 需要配置正式签名 也就是我们用密钥生成的签名 再生成包时一定要注意自己的签名是否正确  

还有一点就是微信可能有缓存记录 也就是说第一次调起失败提示签名不对之后就算你把签名写正确 也可能会提示签名不对  这里建议大家用的安卓机支持微信双开或者需要把微信卸载重装 否则缓存问题很难受真的很难受 不想提~


ios打包的话需要做出一些配置 这里文档里面讲解的并不是很清楚

在 tobias 及 fluwx  均升级到1.0后 文档里面声明不在需要在AppDelegate.m里面重写回调方法 

可以不用写 我这边个人是写的了 

- (BOOL)application:(UIApplication *)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {return[superapplication:applicationopenURL:urlsourceApplication:sourceApplicationannotation:annotation];}

- (BOOL)application:(UIApplication *)application openURL:(NSURL*)url options:(NSDictionary *)options{return[superapplication:applicationopenURL:urloptions:options];}


然后主要问题是在 Info.plist里面  (支付宝 微信支付写在一块)

<key>CFBundleURLTypes</key>

<array>

<dict>

<key>CFBundleTypeRole</key>

<string>Editor</string>

<key>CFBundleURLName</key>

<string>alipay</string>

<key>CFBundleURLSchemes</key>

<array>

    <string>aliplays</string>

    <string>Your wx APP ID </string>

    <string>YOUR APP SCHEME NAME</string>

</array>

</dict>

</array>


<key>LSApplicationQueriesSchemes</key>

<array>

<string>weixin</string>

</array>

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

以上代码都要添加 重点添加粗线标注的如果忘记写则调起支付宝支付后不会返回APP 无法监听支付结果

然后还有微信的appid 也要写在里面


再一个说一下关于flutter 关于软键盘遮挡输入框的问题

这里建议大家使用 SingleChildScrollView   要注意如果Scaffold设置了resizeToAvoidBottomPadding: false,这向上滚动会不生效 

正常大家可以用

推一下效果 


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容