本文最后更新时间为:2017-08-14 17:01
前言
- 微信支付功能模块比较多,但是出于安全考虑,数据处理等涉及签名的流程往往在服务器端进行,客户端需要完成的操作则相对较少。
- 单纯的支付和分享只需要加入
WXApiManager
文件即可,其余SDK相关文件根据文档要求添加。 - 相关SDK及demo见文中链接。
微信支付
//微信支付
//tmpDic为从后端传递过来的支付参数
BSGPayModel * payModel = [[BSGPayModel alloc]initWithBSGWeixinPayDictionary:tmpDic];
PayReq * req = [[PayReq alloc]init];
req.partnerId = payModel.WXPartnerID;
req.prepayId = payModel.WXPrepayID;
req.nonceStr = payModel.WXNonceStr;
req.timeStamp = payModel.WXTimeStamp;
req.package = payModel.WXPackage;
req.sign = payModel.WXSign;
//发送支付请求
[WXApi sendReq:req];
-
BSGPayModel
为数据处理的Model类。 -
- (void)onResp:(BaseResp *)resp;
和- (void)onReq:(BaseReq *)req;
方法位于WXApiManager.m
文件内,监听支付及其回调,在WXApiManager.m
内部写入相关方法。于外部写入该方法无效。 - 具体细节以demo为主。
微信分享
以网址分享为例:
WXMediaMessage * message = [WXMediaMessage message];
message.title = @"这是一个分享标题";
message.description = @"我是分享内容";
[message setThumbImage:[UIImage imageNamed:@"这是一张图片"]];
WXWebpageObject * webPageObject = [WXWebpageObject object];
//webPageObject.webpageUrl = @"https://douban.fm/?from_=shire_top_nav#/channel/153";
webPageObject.webpageUrl = @"这是一个链接";
message.mediaObject = webPageObject;
SendMessageToWXReq * req1 = [[SendMessageToWXReq alloc]init];
req1.bText = NO;
req1.message = message;
//设置分享到朋友圈(WXSceneTimeline)、好友回话(WXSceneSession)、收藏(WXSceneFavorite)
req1.scene = WXSceneSession;
[WXApi sendReq:req1];
注意:
- 图片大小有限制,如果分享链接中的图片太大则分享会失败,无法跳转至微信,也不会有任何提示。
完整版:微信分享与收藏
来源
官方文档:微信支付
官方文档:微信开放平台