一、开发前准备

1.打开 https://open.weixin.qq.com ,申请微信开发者账号;

2.打开“管理中心”,“创建移动应用”;

3.对开发者账号进行认证(需要300元/年);

4.点击应用,“申请开通”微信支付(需要公司营业执照、APP截图(如果是没上线的APP)),注意:申请时,经营类目一定要和属于营业执照的子类,描述也要根据实际情况来写;

5.开通之后你会收到一封邮件;

6.打开 https://pay.weixin.qq.com/index.php/home/login ,登录到微信商户平台。点击“账户设置”-》“API安全”-》“设置秘钥”(API_KEY)。

至此,接入前准备工作已完成。

二、在APP中接入。

请参照demo
本demo参照微信官方文档、demo编写及实际项目中的应用编写而成,开发者更容易继承。

2015年9月14日更新:
demo中在APP端进行的生成预付订单及签名,这样做并非官方文档所推荐的。
生成预付订单和签名应该在服务器端来完成,然后把数据返回给APP端,APP仅需用这些数据调用微信支付即可。

注: 调用支付过程中,若果遇到点击支付,在微信只有一个确定按钮(或点击支付,跳转到微信,又直接跳转到APP),请检查注册的appid和服务器返回的appid是否一致,各参数是否正确。
特别注意:时间戳字段应该为10位。

//调起微信支付 

    PayReq* req             = [[PayReq alloc] init]; 

    req.openID              = [dict objectForKey:@"appid"]; 

    req.partnerId          = [dict objectForKey:@"partnerid"]; 

    req.prepayId            = [dict objectForKey:@"prepayid"]; 

    req.nonceStr            = [dict objectForKey:@"noncestr"]; 

    req.timeStamp          = stamp.intValue; 

    req.package            = [dict objectForKey:@"package"]; 

    req.sign                = [dict objectForKey:@"sign"]; 


    BOOL flag = [WXApi sendReq:req];