App集成支付功能

这篇博客讲述了在将App从Flutter转为基于Webview的混合开发过程中,集成微信支付和支付宝支付的体验。作者指出微信支付的文档零碎且示例过时,导致安卓和iOS端集成时遇到诸多问题,尤其是苹果端的Universal Link配置和调试。相比之下,支付宝的集成过程更为简洁。最后,作者强调了iOS端配置Associated Domains在不同模式下的一致性对于避免发布问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、场景

由于App 是从flutter 转基于webview 的混合开发方式, 业务发展需要,需要集成微信支付和支付宝支付功能。

二、集成

1、微信开放平台文档阅读

微信开放文档

刚开始以为只需要单独阅读 微信支付 部分, 在了解的过程中发现其中提到的很多东西由于自己没有去从头开始处理,导致无法确认其来源在哪里(比如签名),于是会产生很多疑惑。另外就是微信开放平台上面提供的sample 十分老旧,安卓端的功能和文档对不上,苹果端的demo直接用最新xcode打开后,工程结构都有问题,这样就给开发者带来更多的困扰了。
微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/oplatform/Downloads/Android_Resource.html

 

当然最终集成的时候确认,预支付订单生产以及参与签名的参数为:appid、partnerid、prepayid、package、noncestr、timestamp 进行签名都是由后台完成的。

安卓端的适配:

 微信支付的安卓端是需要签名后才能正常调试使用的,不管是debug版本还是release 版本,这个尤其需要注意:

总之微信开放平台接入的文档说明逻辑太过于零碎了,如果在集成的过程中有问题,需要一点一点地去核对猜想,有可能文档的编写者也是这种想到一点写一点的这种思路吧。

苹果端比较费时的事情是在Univeral link  这块, 微信应用和三方应用互相调起的方式,这个需要在应用后台放置 apple-app-site-association 文件:

{

"applinks": {

"apps": [],

"details": [

{

"appID": "teamIdXXX.bundleIdXXX",

"paths": ["/app/*"]

}

]

}

}

放置到服务器根目录下。

苹果提供的测试网址:
https://search.developer.apple.com/appsearch-validation-tool/

最终按照文档集成完之后还是不能正常返回,终于在开发者论坛上面找到了解决思路:

https://developers.weixin.qq.com/community/develop/doc/000ce0403bc9d0ea1a0a67f415b409

这个问题调试了好久,一部分是由于自己对于苹果开发不熟悉,一部分也是由于开发文档思路有点让人费解。

另外关于IOS 接入指南里面需要在xcode 里面关于openSDK1.8.6及以上版本的更新说明 | 微信开放文档

配置的Associated Domains开关 需要注意debug 和Release 两个都要配置都要配置都要配置,否则可能开发版本正常,release版本跳转又会有问题,这个天坑又才了一上午啊一上午。

 

2、支付宝支付

 支付宝安卓和苹果端的集成相关简洁,其订单信息是后台生成的一长串字符串,里面包含了所有信息,App 端不需要管其中的逻辑,只需要调用SDK 支付接口进行支付即可,然后处理异步返回支付结果。

总体来说,微信的开发文档逻辑真的不容易理解,可能和其还有其他功能放置在一起有关,而支付宝的逻辑则相关明了简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值