微信支付

接入微信支付

首先先到微信注册你的app

下载sdk

下面开始是正题

集成微信

首先在info里面的 url Types 添加微信的回调 在URL Schemes 下面添加微信的key(就是注册app时生成的)

同样也是在info里面 添加微信的白名单 新增一个LSApplicationQueriesSchemes的Array类型 ,添加item,value是weixin

把微信sdk拖到工程里面,,缺少哪一些库,补上就ok

使用微信发起支付

// 注册微信 在appdelegate里面注册
func wxAliPay(){
WXApi.registerApp(“xxxx”)// 这个key跟URL Schemes一致
}

// 注意要注意遵守 WXApiD// 吊起微信支付

func weChatPay(content:String,price:String){

if WXApi.isWXAppInstalled() {
//创建支付签名对象
let req = payRequsestHandler()
//初始化支付签名对象
/** 以下的全部是跟注册生成的key有关
APP_ID
MCH_ID
PARTNER_ID
//req.init_LYH(APP_ID, mch_id: MCH_ID)写成这样子是因为避开swift的关键init字,其实都是调用req.init(APP_ID, mch_id: MCH_ID) 只是把代码拷贝了一下

req.init_LYH(APP_ID, mch_id: MCH_ID)
//设置密钥
req.setKey(PARTNER_ID)

let dict = req.sendPay_demo_and(content, andprice: price)

if dict == nil {

}else{
let stamp:NSMutableString = dict.objectForKey("timestamp") as! NSMutableString
//调起微信支付
let pay = PayReq()
pay.openID = dict.objectForKey("appid") as! String
pay.partnerId = dict.objectForKey("partnerid") as! String
pay.prepayId = dict.objectForKey("prepayid") as! String
pay.nonceStr = dict.objectForKey("noncestr") as! String
//TODO:这个强转可能有问题
pay.timeStamp = UInt32(stamp.intValue)
pay.package = dict.objectForKey("package") as! String
pay.sign = dict.objectForKey("sign") as! String

WXApi.sendReq(pay)
}

}else{
// 没有安装微信
let alew = UIAlertView(title: nil, message: "尚未安装微信", delegate: nil, cancelButtonTitle: "确定")
alew.show()
}
}

// 微信的代理方法
func onResp(resp: BaseResp!) {
print("onResp")
var strMsg = NSString(string: "errcode:\(resp.errCode)")
var strTitle = ""

if resp.isKindOfClass(SendMessageToWXResp) {
strTitle = "发送媒体消息结果"
}

if resp.isKindOfClass(PayResp) {
strTitle = "支付结果"

switch resp.errCode {
case 0:
// self.havenotext(self.hud, text: "支付成功", view: self.window!)
break
default:
// self.havenotext(self.hud, text: "支付失败", view: self.window!)
break
}
}
}

 

posted @ 2016-07-01 10:21  世界仔  阅读(183)  评论(0编辑  收藏  举报