iOS开发--微信和支付宝网页支付(过审, 支付宝支付成功可回跳)

本文探讨了网页支付在微信和支付宝上的应用,重点介绍了如何通过替换redirect_url和fromAppUrlScheme参数来实现网页支付,以减少应用体积并简化审核过程。

前言

以前接入微信和支付宝的支付, 采用的是导入对应的SDK, 调用和返回都是由SDK内部处理, 这一点从操作和集成角度而言, 安全和方便. 但是局限性也是有的:

  1. 苹果限制虚拟类型的商品等必须使用内购, 也就是说 支付宝和微信的三方支付存在很多的局限性,这个虽然是为用户的账户资金安全考虑, 但是就目前的国内实际情况而言, 这是一个麻烦(和谐一下)
  2. 在一定程度上增加了包体积的大小
  3. 增加了审核的成本

那么, 问题来了, 有没有更简单的方案呢, 答案当然是有的.

网页支付

微信和支付宝的网页支付营运而生…
优点:

  1. 采用网页支付, 空间上不需要在项目中导入SDK增加体积
  2. WEB一站式解决支付问题
  3. 可以更好地应对审核(和谐一下)

缺点:(学习使我快乐, 忽略吧)

  1. H5或者网页的对接经验
  2. 增加了学习的成本
  3. 需要单独处理支付宝和微信的链接

应用场景:

目前我遇到的大部分是活动网页.

正文

这边文章目的是使用网页支付, 更好的适配审核, 所以, 有舍有得, 我们不去看缺点, 毕竟, 就过审而言, 这点不算什么…

进入正题, 网页支付, 就是使用WKWebView打开网页, 由网页调用支付宝or微信的网页的SDK, 这部分由前端同学(甩锅中…)完成, 我们这边通过WK的代理获取当前请求的网络连接,判断是不是需要openURL到微信或者支付宝.

1. 设置URL Scheme

这个相当于你App的铭牌, 别的App想要跳转到你的App的时候, 就需要知道你App的铭牌,一个App可以设置多个.

2. AppDelegate( 这一步 看大家需求操作吧 )

设置进入前台(跳转回来) 处理服务器需要刷新的网页

3.1 - 微信网页支付

大致流程:

  1. 获取当前请求的链接,判断你是不是微信的
  2. 保存连接中的参数名为redirect_url的对应数据为appWillBecomeActiveWebReloadUrlString,
  3. 替换redirect_url = “自定App的URLScheme” 用于,
  4. 替换完后, 重新请求连接,
  5. 跳转,
  6. 支付完成, 返回app(能返回是因为第3步)
  7. 在AppDelegate的程序进入前台的代理方法中处理当前网页刷新之前保存的appWillBecomeActiveWebReloadUrlString(至于这个保存的appWillBecomeActiveWebReloadUrlString的链接地址内容是啥,就看你们前端如何处理了).
// 判断非返回或者刷新
if (!(navigationAction.navigationType == WKNavigationType.backForward || navigationAction.navigationType == WKNavigationType.reload)) {
   
   
// 微信判断
    let pre_string = "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb"
    if request.url?.absoluteString.hasPrefix(pre_string) ?? false {
   
   
        
        let par = WebPayTool.params(of: navigationAction.request.url)
        let params: NSMutableDictionary = NSMutableDictionary(dictionary:par);
        
        if var allKeys = params.allKeys as
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值