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


微信开放平台


懒人直接上Git代码 https://github.com/gaowenhui0822/app-pay-demo

一.准备工作

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

二.配置工程


下载SDK

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

设置URL Types (TARGETS-->Info)


三.代码部分


1.在AppDelegate里向微信注册

didFinishLaunchingWithOptions 方法

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

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

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

  1. {
  2. "appid":"wxxxxxxxxxxx",
  3. "noncestr":"Hk8dsZoMOdTXGjkJ",
  4. "package":"Sign=WXPay",
  5. "partnerid":"01001010110",
  6. "prepayid":"wx2016050000000000000000000000",
  7. "sign":"B4879FFFA8B65522A04034E2D027A3B8",
  8. "timestamp":"1459394923",
  9. "success":true
  10. }


参数说明

字段名 变量名 类型 必填 示例值 描述
应用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 签名,详见签名生成算法

发送请求

  1. //MARK:微信支付
  2. funcwechatPay(model:WXPayModel)
  3. {
  4. letreq=PayReq()
  5. req.partnerId=model.PartnerId
  6. req.prepayId=model.PrepayId
  7. req.nonceStr=model.NonceStr
  8. req.timeStamp=UInt32(model.TimeStamp!)!
  9. req.package=model.PackageValue
  10. req.sign=model.Sign
  11. WXApi.sendReq(req)
  12. }

3.处理回调

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

  1. //MARK:-WXApiDelegate处理支付结果
  2. funconResp(resp:BaseResp!)
  3. {
  4. varstrTitle="支付结果"
  5. varstrMsg="what:\(resp.errCode)"
  6. ifresp.isKindOfClass(PayResp)
  7. {
  8. print("retcode=\(resp.errCode),retstr=\(resp.errStr)")
  9. switchresp.errCode
  10. {
  11. case0:
  12. NSNotificationCenter.defaultCenter().postNotificationName("WXPaySuccessNotification",object:nil)
  13. default:
  14. strMsg="支付失败,请您重新支付!"
  15. }
  16. }
  17. }

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...