微信支付、分享、支付宝支付

<一>、添加微信sdk

把微信sdk下载下来,然后会报错,这时需要去Target中的Link Binary With Libraries手动添加

首先点击 “+”,搜索不出来就可以去点击 Add Other,出现文件目录页面,正常情况这里去通过Finder也是找不到老的libsqlite3.dylib文件的,因为这个文件是隐藏掉的。所以需要按

快捷键 CMD+Shift+G (Go to the folder),输入/usr/lib后,进入隐藏的界面,然后添加你需要的 *.dylib,如libsqlite3.dylib文件


<二>、微信、支付宝添加白名单

去Target中的info,点击URL Types中添加Identifier,测试时可用weixin,URL Schemes可用payDemo(支付宝),wxb4ba3c02aa476ea1(微信),支付宝的可以自己定义,微信不行。


<三>、支付宝支付

//支付宝支付需要在info中的url types中自己随便写一个scheme,跟下面的scheme保持一致即可,不用去支付宝注册app,payOrder一般由后台返回,是一些订单信息,时间之类的东西,AppDelegate中需要对支付宝的回调进行一些处理,支付宝支付不需要判断是否安装支付宝,如果有安装支付宝,就跳入支付宝,没有自动会跳入支付宝网页版

NSString *payOrder=@"";

NSString *scheme=@"payDemo";

[[AlipaySDK defaultService]payOrder:payOrder fromScheme:scheme callback:^(NSDictionary *resultDic) {

//支付结果回调

}];

payOrder的格式sign=\"GCsTIzjjES4Uky2hrW22G6voqogk5DgjnrrSLzysREPOoVE6TzKztU%2FEDDYdH9UCcbNE9fiT60cYWidjlq8JYzKLMVlkSV4ovIE5j%2Bl75bDO8yQFV5Keqk43JRy7G7oYB0tPe4GQlbtvIx1yRE9C8I971qxZwnSWpAUBXGUjAY8%3D\"&sign_type=\"RSA\"&_input_charset=\"UTF-8\"&subject=\"2015年12月9日---3 10g\"¬ify_url=\"http://113.108.232.136/alipay/notify/mobile/securitypay/pay\"&body=\"2015年12月9日---3 10g\"&payment_type=\"1\"&out_trade_no=\"M1714510263976408356\"&partner=\"2088711437104563\"&service=\"mobile.securitypay.pay\"&total_fee=\"0.01\"&seller_id=\"zhifubao2@biostime.com.cn\"


<四>、微信支付

//    微信支付需要去微信注册一个appID,然后在info的url types中加入这些信息,微信支付没有网页版,所以支付之前需要判断有没有安装微信。

//    微信支付时,首先在AppDelegate中注册微信,然后,支付的数据一般从后台返回,后台返回的partnerId与工程中的appID必须是当初注册时的一套,(本工程为了能顺利的支付成功,使用的是微信demo所使用的一套id)否则跳转微信支付,会出现只有一个确定按钮的界面,不能支付成功

// 微信引入最新demo时会报错,需要引入libsqlite3.dylib、libc++.1.dylib这两个库即可

if(![WXApi isWXAppInstalled]) // 判断 用户是否安装微信

{

//没有安装微信

}

else{

if ( response != nil) {

//从后台返回所有数据

if(dict != nil){

NSMutableString *retcode = [dict objectForKey:@"retcode"];

if (retcode.intValue == 0){

NSMutableString *stamp  = [dict objectForKey:@"timestamp"];

//调起微信支付(一般在这里组织好数据,然后传给微信)

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

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"];

[WXApi sendReq:req];

}

}

}

}


<五>、微信分享


1、微信好友分享文字(仅文字)

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

req.text = @"分享好友string的内容";

req.bText = YES;

req.scene = WXSceneSession;

[WXApi sendReq:req];


2、微信好友分享图片(仅图片,文字设置了也没用)

WXMediaMessage *message = [WXMediaMessage message];

[message setThumbImage:[self setThumbImage:[UIImage imageNamed:@"1.jpg"]]];//消息缩略图

WXImageObject *ext = [WXImageObject object];

ext.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"1.jpg"]);//图片真实数据内容

message.mediaObject = ext;

message.title = @"分享图片";//标题

message.description = @"分享朋友图片内容";//内容

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

req = [[SendMessageToWXReq alloc] init];

req.bText = NO;

req.message = message;

req.scene = WXSceneSession;

[WXApi sendReq:req];


3、分享朋友圈string

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

req.text = @"分享朋友圈string的内容";

req.bText = YES;//文本消息

req.scene = WXSceneTimeline;//发送的目标场景

[WXApi sendReq:req];


4、微信朋友圈分享图片

UIImage *shareImage=[UIImage imageNamed:@"1.jpg"];

WXMediaMessage *message = [WXMediaMessage message];

[message setThumbImage:[self setThumbImage:[UIImage imageNamed:@"1.jpg"]]];//消息缩略图

WXImageObject *ext = [WXImageObject object];

ext.imageData =  UIImagePNGRepresentation(shareImage);

message.mediaObject = ext;

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

req.bText = NO;//媒体消息

req.message = message;//发送消息的多媒体内容

req.scene = WXSceneTimeline;//发送的目标场景

[WXApi sendReq:req];

5、微信好友分享图文(可以设置标题跟内容,url链接必须加上)

WXMediaMessage *message = [WXMediaMessage message];

message.title = @"微信好友分享标题";  //标题

message.description = @"微信好友分享内容";  //描述

[message setThumbImage:[self setThumbImage:[UIImage imageNamed:@"1.jpg"]]];//消息缩略图

WXWebpageObject *ext = [WXWebpageObject object];

ext.webpageUrl = @"www.baidu.com"; //url链接

message.mediaObject = ext;

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

req.message = message;

req.bText = NO;

req.scene = WXSceneSession;  //分享类型

[WXApi sendReq:req];    //发送


6、微信朋友圈分享图文(只能设置标题,内容设置,分享看不到,必须设置url链接)

WXMediaMessage *message = [WXMediaMessage message];

message.title = @"微信朋友圈分享标题";  //标题

[message setThumbImage:[self setThumbImage:[UIImage imageNamed:@"1.jpg"]]];//消息缩略图

WXWebpageObject *ext = [WXWebpageObject object];

ext.webpageUrl = @"www.baidu.com"; //url链接

message.mediaObject = ext;

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

req.message = message;

req.bText = NO;

req.scene = WXSceneTimeline;  //分享类型

[WXApi sendReq:req];    //发送


//缩略图

- (UIImage *)setThumbImage:(UIImage *)image

{

if (image) {

CGFloat width = 50;

CGFloat height = image.size.height * 50 / image.size.width;

UIGraphicsBeginImageContext(CGSizeMake(width, height));

[image drawInRect:CGRectMake(0, 0, width, height)];

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return scaledImage;

}

return nil;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自...
    Nest0912阅读 1,231评论 0 1
  • 前言 年末了,一直在忙项目,很少有时候写一些自己的见解。今天挤出一点时间来写一下刚刚完成的微信的支付和跳转到微信的...
    沉默学飞翔阅读 1,464评论 0 5
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    请输入账号名阅读 6,176评论 3 22
  • 作者:Mandarava(鳗驼螺) 参考: 微信官方文档《iOS接入指南》 微信SDK Demo项目 微信iOS ...
    鳗驼螺阅读 13,990评论 1 23
  • 与微信官方签署在线协议 导入微信支付需要的SDK相关文件 配置App跳转的白名单 添加URL Schemes 配置...
    阁子菌阅读 412评论 0 7