在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天心情那真是想要强奸吉娃娃的冲动 说白了就是不想做和工作沾边的任何事 但是也不能闲着啊 时间那么贵 之前就想把微信支付做一下 主要就是怕自己忘记了 今天难得有时间 就来简单的记录一下 旨在提高自己 如果要在app中介入微信的支付功能 其实坑还是稍微有点多的 但是也不是不能解决 毕竟现在百度那么强大
正事开启 (1).首先你要去微信开放平台去注册一个账号 然后完成开发者认证 然后完成商户资料填写 然后还要在线签合同 填写账号资料 反正就是等等吧 这些的都不是今天要说的重点,今天要说的是在你上述资料都完事了之后 拿到APPID后来开发的过程 (2).好哒 ,现在你已经拿到了appID的信息了 那么就来愉快的接入吧 (3).其实到这一步,才是真正开启今天我要说的主题的 ???? (4).下载微信的SDK 然后把 libWeChatSDK.a 、WXApi.h 、 WXApiObject.h 这三个文件拖到你的项目中去,并在Bridging-Header.h文件中添加如下两行代码
<key>LSApplicationQueriesSchemes</key>
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { print("openURL:\(url.absoluteString)")
if url.scheme == WX_APPID { return WXApi.handleOpenURL(url, delegate: self) } (8)接下来你就可以在你用到微信支付的地方直接调起微信了 (微信支付和支付宝支付流程有些不一样,微信支付会在真正发起支付请求钱先发起PrePay(预支付)请求,然后利用PrePay发起支付请求。Demo中的PrePay是在客户端生成的,但是更加安全的方式是在服务端生成PrePay) /** 微信支付方法 :param: wxDict 从服务器返回来的字典数据 */ func sendWXPay(wxDict: [String: AnyObject]) { if !WXApi.isWXAppInstalled() {//检查一下是否可以使用微信 SwiftNotice.showText("未安装微信") return } else if !WXApi.isWXAppSupportApi() { SwiftNotice.showText("当前版本微信不支持微信支付") return } let req = PayReq() req.openID = wxDict["appid"] as! String req.partnerId = wxDict["partnerid"] as! String req.prepayId = wxDict["prepayid"] as! String req.package = wxDict["packageValue"] as! String req.timeStamp = UInt32(wxDict["timestamp"] as! String)! req.nonceStr = wxDict["noncestr"] as! String req.sign = wxDict["sign"] as! String WXApi.sendReq(req) //调起微信 }
// MARK: - WXApiDelegate func onReq(req: BaseReq!) {//这个方法暂时好像用不到 不过你最好还是实现它
} func onResp(resp: BaseResp!) { if resp.isKindOfClass(PayResp.classForCoder()) { //支付返回结果,实际支付结果需要去微信服务器端查询 switch resp.errCode { case WXSuccess.rawValue: print("支付成功") //在这里你是不是可以去干你想干的事了呢 break default: //当然了 失败了也是要干事情滴 break } } } 完事 大功告成
|
请发表评论