微信支付
接入微信支付
首先先到微信注册你的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
}
}
}