微信支付Swift3.0

Swift3.0接入微信支付:

    一、去官网下载SDK;

    二、配置URL TYPE


URL TYPE

        三、AppDelegate的一些配置

            1、遵循WXApiDelegate的协议;

            2、配置Key:WXApi.registerApp("***");

            3、微信回掉:

                a、// iOS9.0以前调用此方法

                fun capplication(_application:UIApplication, handleOpen url:URL) ->Bool{

                    if url.host=="pay"{

                        returnWXApi.handleOpen(url, delegate:self)

                    }

                    return true

                }


                // iOS9.0及9.0以后调用此方法

            func    application(_application:UIApplication, open url:URL, sourceApplication:String?, annotation:Any) ->Bool{

            // 在此方法中做如下判断,因为还有可能有其他的支付,如支付宝就是@"safepay"

                ifurl.host=="pay"{

                    returnWXApi.handleOpen(url, delegate:self)

                }

                return true

        }

            b、微信代理回掉

                //微信支付回调用

            funconResp(_resp:BaseResp){

                    let response = respas!PayResp

                        switch response.errCode {

                    case0:

                        //支付完成

                    case-1:

                        //支付失败

                case-2:

                        //您已放弃支付

                default:

                       //支付失败

                }

        }

        四、WeChatPayManger的类

                我为微信支付自己封装了一个类,统一管理支付这一块逻辑

                a、单利(安全):static let shared = WeChatPayManger.init()

                b、写下如下方法、收到后台返回的参数,直接调用即可:func WXPayWithAppid(appid:String,noncestr:String,package:String,partnerid:String,prepayid:String,timestamp:String,sign:String){

                let req = PayReq()

                //由用户微信号和AppID组成的唯一标识,用于校验微信用户

                req.openID = appid

                // 商家id,在注册的时候给的

                req.partnerId = partnerid

                // 预支付订单这个是后台跟微信服务器交互后,微信服务器传给你们服务器的,你们服务器再传给你

                req.prepayId  = prepayid

                // 根据财付通文档填写的数据和签名

                req.package  = package

               // 随机编码,为了防止重复的,在后台生成

                req.nonceStr  = noncestr

                // 这个是时间戳,也是在后台生成的,为了验证支付的

                req.timeStamp =UInt32(timestamp)!

                print(UInt32(timestamp)!)

                // 这个签名也是后台做的

                req.sign = sign

                //发送请求到微信,等待微信返回onResp

                WXApi .send(req)

        }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 自己总结的微信支付宝支付流程和注意点: 准备工作: 需要公司的营业执照,税务信息,等老板的身份证信息等,我记得,用...
    Www刘阅读 18,588评论 2 50
  • 引言 秋高气爽,天气转凉,正是学习工作做的好时候。(~ ̄▽ ̄)~~(~ ̄▽ ̄)~ 我是个phper最近在写微信支付...
    恩就是这个名阅读 8,009评论 2 15
  • 是不是越长大我们就越来越喜欢说谎
    桥豆麻袋1号阅读 272评论 0 0
  • 说起幸福,我想到一首歌《幸福在哪里》,幸福在哪里?朋友啊告诉你,她不在柳荫下,也不在温室里。她在辛勤的工作...
    大玉堂阅读 576评论 0 0
  • 早上五点二十二 坐标英国剑桥 在剑桥还未破晓的清晨用电脑看完了根据八月长安的小说改编的电视剧《最好的我们》。满是感...
    温风始阅读 335评论 0 1