微信支付、分享、支付寶支付

<一>、添加微信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;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 微信分享與QQ分享功能現(xiàn)在都挺常見的,可以根據(jù)一些第三方社會化分功能快速實現(xiàn),不過多多少少都不怎么純凈,最好都是自...
    Nest0912閱讀 1,359評論 0 1
  • 前言 年末了,一直在忙項目,很少有時候?qū)懸恍┳约旱囊娊?。今天擠出一點時間來寫一下剛剛完成的微信的支付和跳轉(zhuǎn)到微信的...
    沉默學(xué)飛翔閱讀 1,550評論 0 5
  • iOS支付 iOS支付分為兩類,第三方支付和應(yīng)用內(nèi)支付(內(nèi)購)。 第三方支付包括:支付寶支付、微信支付、銀聯(lián)支付、...
    請輸入賬號名閱讀 6,473評論 3 22
  • 作者:Mandarava(鰻駝螺) 參考: 微信官方文檔《iOS接入指南》 微信SDK Demo項目 微信iOS ...
    鰻駝螺閱讀 14,209評論 1 23
  • 與微信官方簽署在線協(xié)議 導(dǎo)入微信支付需要的SDK相關(guān)文件 配置App跳轉(zhuǎn)的白名單 添加URL Schemes 配置...
    閣子菌閱讀 454評論 0 7

友情鏈接更多精彩內(nèi)容