swift 支付宝登录及支付方法封装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 支付宝登录及支付方法封装相关的知识,希望对你有一定的参考价值。
参考技术A class AliPayManager: NSObjectstatic let shared = AliPayManager()
// 用于弹出警报视图,显示成功或失败的信息
fileprivate weak var sender: UIViewController!
// 支付成功的闭包
fileprivate var paySuccessClosure: (() -> Void)?
// 支付失败的闭包
fileprivate var payFailClosure: (() -> Void)?
///登录成功的闭包
fileprivate var loginSuccessClosure:((_ auth_code:String) -> Void)?
///登录失败的闭包
fileprivate var loginFailClosure:(() -> Void)?
// 外部用这个方法调起支付支付
func payAlertController(_ sender: UIViewController,
request:String,
paySuccess: @escaping () -> Void,
payFail:@escaping () -> Void)
// sender 是调用这个方法的控制器,
self.sender = sender
//用于提示用户支付宝支付结果,可以根据自己需求是否要此参数。
self.paySuccessClosure = paySuccess
self.payFailClosure = payFail
AlipaySDK.defaultService().payOrder(request, fromScheme:"xxx",callback:nil)
//外部用这个方法调起支付宝登录
func login(_ sender:UIViewController,withInfo:String,loginSuccess: @escaping (_ str:String) -> Void,loginFail:@escaping () -> Void)
// sender 是调用这个方法的控制器,
// 用于提示用户微信支付结果,可以根据自己需求是否要此参数。
self.sender = sender
self.loginSuccessClosure = loginSuccess
self.loginFailClosure = loginFail
AlipaySDK.defaultService().auth_V2(withInfo:withInfo, fromScheme:"xxx", callback:nil)
///授权回调
func showAuth_V2Result(result:NSDictionary)
// 9000 请求处理成功
// 4000 系统异常
// 6001 用户中途取消
// 6002 网络连接出错
let returnCode:String = result["resultStatus"] as! String
var returnMsg:String = ""
switch returnCode
case "6001":
returnMsg = "用户中途取消"
break
case "6002":
returnMsg = "网络连接出错"
break
case "4000":
returnMsg = "系统异常"
break
case "9000":
returnMsg = "授权成功"
break
default:
returnMsg = "系统异常"
break
print("授权结果---\(returnMsg)")
// 显示授权结果提示框
// UIAlertController.showAlertYes(sender, title: "授权结果", message: returnMsg, okButtonTitle:"确定", okHandler: (alert) in
// if returnCode == "9000"
// let r=result["result"] as! String
// self.loginSuccessClosure?(r)
//
// else
// self.loginFailClosure?()
//
// )
//传入回调参数
func showResult(result:NSDictionary)
let returnCode:String = result["resultStatus"] as! String
if returnCode == "9000"
self.paySuccessClosure?()
else
self.payFailClosure?()
uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权
效果图
uniapp须知(无奈之处)
uniapp绑定支付宝user_id提现 - 方法对比:
==== 不同接口 ====
【APP支付宝登录】
https://opendocs.alipay.com/open/218/105325
【网站支付宝登录】
以上是关于swift 支付宝登录及支付方法封装的主要内容,如果未能解决你的问题,请参考以下文章
uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权