• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift集成支付宝遇到的问题

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

移动端做加密,安卓和ios的私钥一定要匹配。比如安卓先生成了私钥和公钥,并且把公钥上传到支付宝管理平台了。这时候ios端无法通过公钥生成私钥,只能拿安卓的私钥转换成ios私钥,才能和支付宝上的应用公钥匹配

ios段接支付宝可以,将uiappdelegate中的这个方法先写好,等支付宝支付失败后跳转到app时,就会打印错误日志,方便调试

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

        if (url.host == "safepay") {

            // 支付跳转支付宝钱包进行支付,处理支付结果

            AlipaySDK.defaultService().processOrder(withPaymentResult: url, standbyCallback: { (resultDic:[AnyHashable : Any]?) in

                

                if let Alipayjson = resultDic as NSDictionary?{

                    let resultStatus = Alipayjson.value(forKey: "resultStatus") as! String

                    if resultStatus == "9000"{

                        print("OK")

                        

                        let resposeStr =  Alipayjson["result"] as! String

                        let arr1 = resposeStr.components(separatedBy: "\"out_trade_no\":\"")

                        let arr2 = arr1.last

                        let tadingno = arr2?.components(separatedBy: "\"}").first

                        

                        

                        NotificationCenter.default.post(name: NSNotification.Name.init("paySuccess"), object: nil, userInfo: ["out_trade_no":tadingno ?? ""])

                        

                    }else if resultStatus == "8000" {

                        

                        print("正在处理中")

                        

                    }else if resultStatus == "4000" {

                        NotificationCenter.default.post(name:  NSNotification.Name.init("payFeild"), object: nil, userInfo: ["warning":"订单支付失败"])

                        print("订单支付失败");

                        WWLog(message: resultDic)

                        

                    }else if resultStatus == "6001" {

                        NotificationCenter.default.post(name:  NSNotification.Name.init("payFeild"), object: nil, userInfo: ["warning":"已取消支付"])

                        

                        print("用户中途取消")

                        

                    }else if resultStatus == "6002" {

                        print("网络连接出错")

                        NotificationCenter.default.post(name:  NSNotification.Name.init("payFeild"), object: nil, userInfo: ["warning":"网络连接出错"])

                        

                    }

                }

                

                

                

                

            })

            // 授权跳转支付宝钱包进行支付,处理支付结果

            AlipaySDK.defaultService().processAuth_V2Result(url, standbyCallback: { (resultDic:[AnyHashable : Any]?) in

                

                // 解析 auth code

                let result = resultDic?["result"] as! String;

                var authCode : String? = nil;

                if (result.lengthOfBytes(using: String.Encoding.utf8) > 0) {

                    let resultArr = result.components(separatedBy: "&")

                    

                    for subResult in resultArr {

                        if (subResult.lengthOfBytes(using: String.Encoding.utf8) > 10 && subResult.hasPrefix("auth_code=")) {

                            let index = "auth_code=".endIndex

                            authCode = subResult.substring(from:index )

                            break;

                        }

                    }

                }

                

            })

        }

        

        return true

    }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift数组作为函数参数的书写格式发布时间:2022-07-13
下一篇:
#swift入门简单语法#-循环,字符串发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap