1.向微信注册
打开开发者应用登记页面,进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
2.下载微信SDK,应使用SDK的最新版。
3.添加库, 一共添加7个
(这个也要添加,不然报错,但是很多博客里都没说这个事)
4.info.plist添加
5.点击你的工程,选中target,选中info 添加url types
6.在app delegate里添加代码,注册(a. import头文件 b.对项目注册appID c.添加delegate)
加两个方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WXApi handleOpenURL:url delegate:self];
}
7.调起支付接口
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
(官方文档)
在你想要支付的支付按钮添加点击事件:别忘了在所在的类#import "WXApi.h"
方法一
#pragma mark 点击事件
- (IBAction)confirmToPay:(id)sender {
PayReq *request = [[PayReq alloc] init];
/** 商家向财付通申请的商家id */
request.partnerId = @"1220277201";
/** 预支付订单 */
request.prepayId= @"82010380001603250865be9c4c063c30";
/** 商家根据财付通文档填写的数据和签名 */
request.package = @"Sign=WXPay";
/** 随机串,防重发 */
request.nonceStr= @"lUu5qloVJV7rrJlr";
/** 时间戳,防重发 */
request.timeStamp= 1458893985;
/** 商家根据微信开放平台文档对数据做的签名 */
request.sign= @"b640c1a4565b476db096f4d34b8a9e71960b0123";
/*! @brief 发送请求到微信,等待微信返回onResp
*
* 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
* SendAuthReq、SendMessageToWXReq、PayReq等。
* @param req 具体的发送请求,在调用函数后,请自己释放。
* @return 成功返回YES,失败返回NO。
*/
[WXApi sendReq: request];
}
8.在APPdelegate里添加方法
-(void)onResp:(BaseResp *)resp{
if([resp isKindOfClass:[PayResp class]]){
//支付返回结果,实际支付结果需要去微信服务器端查询
NSString *strMsg,*strTitle = [NSString stringWithFormat:@"支付结果"];
switch (resp.errCode) {
case WXSuccess:
strMsg = @"支付结果:成功!";
NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
break;
default:
strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];
NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:selfcancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
}
9.添加buildSettings 的 other linker flags
大功告成~~~~~~~~~~~~~
另附上:
http://www.cnblogs.com/goodboy-heyang/p/5255818.html(超详细的一个博客)