<一>、添加微信sdk
把微信sdk下載下來,然后會報錯,這時需要去Target中的Link Binary With Libraries手動添加
首先點擊 “+”,搜索不出來就可以去點擊 Add Other,出現(xiàn)文件目錄頁面,正常情況這里去通過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中需要對支付寶的回調(diào)進行一些處理,支付寶支付不需要判斷是否安裝支付寶,如果有安裝支付寶,就跳入支付寶,沒有自動會跳入支付寶網(wǎng)頁版
NSString *payOrder=@"";
NSString *scheme=@"payDemo";
[[AlipaySDK defaultService]payOrder:payOrder fromScheme:scheme callback:^(NSDictionary *resultDic) {
//支付結(jié)果回調(diào)
}];
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中加入這些信息,微信支付沒有網(wǎng)頁版,所以支付之前需要判斷有沒有安裝微信。
//? ? 微信支付時,首先在AppDelegate中注冊微信,然后,支付的數(shù)據(jù)一般從后臺返回,后臺返回的partnerId與工程中的appID必須是當(dāng)初注冊時的一套,(本工程為了能順利的支付成功,使用的是微信demo所使用的一套id)否則跳轉(zhuǎn)微信支付,會出現(xiàn)只有一個確定按鈕的界面,不能支付成功
// 微信引入最新demo時會報錯,需要引入libsqlite3.dylib、libc++.1.dylib這兩個庫即可
if(![WXApi isWXAppInstalled]) // 判斷 用戶是否安裝微信
{
//沒有安裝微信
}
else{
if ( response != nil) {
//從后臺返回所有數(shù)據(jù)
if(dict != nil){
NSMutableString *retcode = [dict objectForKey:@"retcode"];
if (retcode.intValue == 0){
NSMutableString *stamp? = [dict objectForKey:@"timestamp"];
//調(diào)起微信支付(一般在這里組織好數(shù)據(jù),然后傳給微信)
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的內(nèi)容";
req.bText = YES;
req.scene = WXSceneSession;
[WXApi sendReq:req];
2、微信好友分享圖片(僅圖片,文字設(shè)置了也沒用)
WXMediaMessage *message = [WXMediaMessage message];
[message setThumbImage:[self setThumbImage:[UIImage imageNamed:@"1.jpg"]]];//消息縮略圖
WXImageObject *ext = [WXImageObject object];
ext.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"1.jpg"]);//圖片真實數(shù)據(jù)內(nèi)容
message.mediaObject = ext;
message.title = @"分享圖片";//標題
message.description = @"分享朋友圖片內(nèi)容";//內(nèi)容
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的內(nèi)容";
req.bText = YES;//文本消息
req.scene = WXSceneTimeline;//發(fā)送的目標場景
[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;//發(fā)送消息的多媒體內(nèi)容
req.scene = WXSceneTimeline;//發(fā)送的目標場景
[WXApi sendReq:req];
5、微信好友分享圖文(可以設(shè)置標題跟內(nèi)容,url鏈接必須加上)
WXMediaMessage *message = [WXMediaMessage message];
message.title = @"微信好友分享標題";? //標題
message.description = @"微信好友分享內(nèi)容";? //描述
[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];? ? //發(fā)送
6、微信朋友圈分享圖文(只能設(shè)置標題,內(nèi)容設(shè)置,分享看不到,必須設(shè)置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];? ? //發(fā)送
//縮略圖
- (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;
}