随着“钱包”变得越来越轻,手机支付早已成为我们日常生活的一部分,尤其是在微信和支付宝的“陪伴”下,几乎每个iOS应用都能享受这种便捷的支付方式。但对于开发者来说,接入微信支付、支付宝支付以及自动续费功能,往往像在玩“闯关游戏”——时不时遇到一些让你头疼的小坑,有时你明明觉得自己已经做得天衣无缝,结果支付结果还是迟迟不来,或者签名验证变成了无解难题。
不用怕!本文将带你一起跳过这些坑,像大厨一样轻松“烹饪”出微信支付、支付宝支付与自动续费功能的完美接入方案。结合项目代码,解锁开发过程中的常见问题和解决技巧,让你能顺利接入支付功能,告别支付失败的烦恼,迎接用户钱包里的满满“钞票”。
iOS接入微信支付、支付宝支付和自动续费步骤:
-
微信支付:在微信开放平台下载SDK,配置
Info.plist
中URL Schemes
,实现AppDelegate
中的回调逻辑。通过后台获取支付参数,使用WXApi
发起支付请求并监听支付结果。 -
支付宝支付:从支付宝开放平台下载SDK,配置
Info.plist
中URL Schemes
,并在AppDelegate
中处理AlipaySDK
的支付回调。调用支付宝SDK接口发起支付,监听支付结果。 -
自动续费:在App Store Connect创建订阅商品,使用
StoreKit
请求商品信息并发起购买。通过SKPaymentQueue
监听交易状态,完成购买和验证。 -
结合逻辑:根据用户选择调用对应支付方法,支付结果由服务端或苹果验证处理,实现自动续费或一次性支付功能。
在 iOS 中接入微信支付、支付宝支付,并支持自动续费,通常需要结合官方 SDK 和 Apple 的订阅机制。以下是实现方案和示例代码。
一、微信支付接入
步骤 1:获取微信支付 SDK
- 到 微信开放平台 下载 iOS SDK,集成到项目中。
步骤 2:配置项目
-
在 Info.plist 中添加 URL Scheme:
<key>LSApplicationQueriesSchemes</key> <array> <string>weixin</string> </array> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>wx1234567890abcdef</string> <!-- 替换为你的微信 AppID --> </array> </dict> </array>
-
在 AppDelegate.swift 中实现回调:
import UIKit import WXApi @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { return WXApi.handleOpen(url, delegate: self) } func onResp(_ resp: BaseResp) { if let payResp = resp as? PayResp { switch payResp.errCode { case WXSuccess.rawValue: print("支付成功") default: print("支付失败,错误码:\(payResp.errCode)") } } } }
步骤 3:调用支付接口
- 在你的支付界面,获取后台返回的支付参数并发起支付。
import WXApi func startWeChatPay(orderInfo: [String: Any]) { let req = PayReq() req