加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift 移动支付之【微信支付】开发步骤

发布时间:2020-12-14 02:35:06 所属栏目:百科 来源:网络整理
导读:微信开放平台 一.准备工作 微信开放平台注册账号 在平台进行签约 创建应用 二.配置工程 下载SDK 微信支付SDK 导入SDK引入头文件 还是最好创建文件夹(WeChatSDK),将文件放入文件夹后再导入工程 桥接文件里导入头文件 #import "WXApi.h"#import "WXApiObjec

微信开放平台


一.准备工作

  • 微信开放平台注册账号
  • 在平台进行签约
  • 创建应用

二.配置工程


下载SDK
微信支付SDK

导入SDK引入头文件
还是最好创建文件夹(WeChatSDK),将文件放入文件夹后再导入工程
桥接文件里导入头文件
#import "WXApi.h"
#import "WXApiObject.h"</span>

设置URL Types (TARGETS-->Info)


三.代码部分


1.在AppDelegate里向微信注册

didFinishLaunchingWithOptions 方法里

//向微信注册
WXApi.registerApp(WX_APPID,withDescription: "xxxx")

2.发送预支付(Prepay)数据

预支付数据由后台返回,格式如下

{
  "appid": "wxxxxxxxxxxx","noncestr": "Hk8dsZoMOdTXGjkJ","package": "Sign=WXPay","partnerid": "01001010110","prepayid": "wx2016050000000000000000000000","sign": "B4879FFFA8B65522A04034E2D027A3B8","timestamp": "1459394923","success": true
}


参数说明

字段名 变量名 类型 必填 示例值 描述
应用ID appid String(32) wx8888888888888888 微信开放平台审核通过的应用APPID
商户号 partnerid 1900000109 微信支付分配的商户号
预支付交易会话ID prepayid WX1217752501201407033233368018 微信返回的支付交易会话ID
扩展字段 package String(128) Sign=WXPay 暂填写固定值Sign=WXPay
随机字符串 noncestr 5K8264ILTKCH16CQ2502SI8ZNMTM67VS 随机字符串,不长于32位。推荐随机数生成算法
时间戳 timestamp String(10) 1412000000 时间戳,请见接口规则-参数规定
签名 sign C380BEC2BFD727A4B6845133519F3AD6 签名,详见签名生成算法

发送请求

//MARK: 微信支付
    func wechatPay(model:WXPayModel)
    {
        let req = PayReq()
        req.partnerId = model.PartnerId
        req.prepayId = model.PrepayId
        req.nonceStr = model.NonceStr
        req.timeStamp = UInt32(model.TimeStamp!)!
        req.package = model.PackageValue
        req.sign = model.Sign
        WXApi.sendReq(req)

    }

3.处理回调

App支付完成后返回App,在Appdelegate中实现协议 WXApiDelegate 中的 onResp方法

//MARK:- WXApiDelegate 处理支付结果
    func onResp(resp: BaseResp!)
    {
        var strTitle = "支付结果"
        var strMsg = "what:(resp.errCode)"
        if resp.isKindOfClass(PayResp)
        {
            print("retcode = (resp.errCode),retstr = (resp.errStr)")
            switch resp.errCode
            {
            case 0 :
                NSNotificationCenter.defaultCenter().postNotificationName("WXPaySuccessNotification",object: nil)
            default:
                strMsg = "支付失败,请您重新支付!"
            }
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读