一、集成
pod 'WechatOpenSDK'
二、使用
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// 微信注册
WXApi.registerApp("xxxxx")
return true
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return WXApi.handleOpen(url, delegate: self)
}
extension AppDelegate:WXApiDelegate {
func onResp(_ resp: BaseResp!) {
if let response = resp as? PayResp {
switch response.errCode {
case WXSuccess.rawValue:
print("支付成功")
case WXErrCodeUserCancel.rawValue:
print("用户点击取消并返回")
case WXErrCodeCommon.rawValue:
print("普通错误类型")
case WXErrCodeSentFail.rawValue:
print("发送失败")
case WXErrCodeAuthDeny.rawValue:
print("授权失败")
case WXErrCodeUnsupport.rawValue:
print("微信不支持")
default:
print("default")
}
}
}
}
// 触发支付
func pay() {
// 实际项目中这些参数都是通过网络请求后台得到的,详情见以下注释,测试的时候可以让后台将价格改为1分钱
let req = PayReq()
// 微信开放平台审核通过的AppID
req.openID = "appid"
// 微信支付分配的商户ID
req.partnerId = "partnerid"
// 预支付交易会话ID
req.prepayId = "prepayid"
// 随机字符串
req.nonceStr = "noncestr"
// 固定值
req.package = "package"
// 签名,除了sign,剩下6个组合的再次签名字符串
req.sign = "sign"
if WXApi.isWXAppInstalled() {
let ret = WXApi.send(req)
if !ret {
print("SDK错误")
}
} else {
print("未安装微信应用")
}
}

640.jpeg
网友评论