iOS微信支付簡單的使用

APP微信商戶申請APPID步驟地址

微信支付 SDK與 Demo地址下載

微信SDK與 Demo
  • 把微信支付 SDK 拖到工程上
    SDK
  • 添加微信支付依賴庫

    添加依賴庫

  • 微信支付 SDK 文件的read_me.txt 有版本更新說明與注意問題彤守,能避免不必要Xcode的報錯

版本更新說明與注意問題
  • ** 蘋果在iOS9 系統(tǒng)把 Http 協(xié)議升級為 Https協(xié)議,Https比 Http更為安全性跷坝,對 Http協(xié)議訪問做限制砖茸,所以需要在 Info.plust 文件添加 URL Schemes 白名單 **
  • ** 添加成功后隘擎,會在Info.plist顯示這兩個 Key (LSApplicationQueriesSchemes 與 App Transport Security Settings)**


    Info.plist顯示這兩個 Key
  • 設置微信 APPID 為 URL Schemes

    設置微信 APPID 為 URL Schemes

  • 在AppDelegate.m 導入頭文件

    #import "WXApi.h"
    
  • 在AppDelegate.m 填寫你的微信APPID


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    

    [WXApi registerApp:@"填寫你的微信APPID" withDescription:@"weixinDemo"];
    
    
    return YES;
}

  • 這個方法會收到來自微信回應的處理結果

/*! @brief 發(fā)送一個sendReq后,收到微信的回應
 *
 * 收到一個來自微信的處理結果凉夯。調用一次sendReq后會收到onResp货葬。
 * 可能收到的處理結果有SendMessageToWXResp、SendAuthResp等劲够。
 * @param resp具體的回應內容震桶,是自動釋放的
 */
-(void)onResp:(BaseResp *)resp
{
    if ([resp isKindOfClass:[PayResp class]])
    {
        //返回支付結果,實際支付結果需要取微信服務端查詢
        NSString *strMsg = @"支付結果";
        switch (resp.errCode) {
            case WXSuccess:
                strMsg = @"支付成功";
                NSLog(@"支付成功-PaySuccess,resp.errCode = %d",resp.errCode);
                break;
                
            default:
                strMsg = @"支付失敗";
                NSLog(@"支付失敗-PaySuccess,resp.errCode = %d,resp.errStr = %@",resp. errCode,resp.errStr);
                break;
        }
        
        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:[NSString stringWithFormat:@"%d",resp.errCode ]message:resp.errStr preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *sure = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
            
        }];
        [alertController addAction:sure];
        [self.window.rootViewController presentViewController:alertController animated:YES completion:^{
            
        }];
    }
}


  • 讓 AppDelegate.m 遵守 WXApiDelegate 代理協(xié)議

#pragma mark - 跳轉到微信應用(第三方)
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
    // 處理微信通過URL啟動App時傳遞的數(shù)據(jù)
    return [WXApi handleOpenURL:url delegate:self];
}

  • **在點擊響應事件的類導入微信支付的頭文件 "WXApi.h",最后在你點擊事件的方法中調用下面這個方法 **

+ (NSString *)jumpToBizPay {

    if (![WXApi isWXAppInstalled]) {
        NSLog(@"該設備沒有安裝微信");
        return @"該設備沒有安裝微信";
    }
    
    if (![WXApi isWXAppSupportApi]) {
        NSLog(@"該設備不支持微信");
        return @"該設備不支持微信";
    }
    
    //============================================================
    // V3&V4支付流程實現(xiàn)
    // 注意:參數(shù)配置請查看服務器端Demo
    // 更新時間:2015年11月20日
    //============================================================
    NSString *urlString   = @"http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=ios";
    //解析服務端返回json數(shù)據(jù)
    NSError *error;
    //加載一個NSURL對象
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
    //將請求的url數(shù)據(jù)放到NSData對象中
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    if ( response != nil) {
        NSMutableDictionary *dict = NULL;
        //IOS5自帶解析類NSJSONSerialization從response中解析出數(shù)據(jù)放到字典中
        dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
        
        NSLog(@"url:%@",urlString);
        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];
                //日志輸出
                NSLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign );
                return @"";
            }else{
                return [dict objectForKey:@"retmsg"];
            }
        }else{
            return @"服務器返回錯誤征绎,未獲取到json對象";
        }
    }else{
        return @"服務器返回錯誤";
    }
}


源碼Demo地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蹲姐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子人柿,更是在濱河造成了極大的恐慌柴墩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凫岖,死亡現(xiàn)場離奇詭異江咳,居然都是意外死亡,警方通過查閱死者的電腦和手機哥放,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門歼指,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人婶芭,你說我怎么就攤上這事东臀。” “怎么了犀农?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵惰赋,是天一觀的道長。 經(jīng)常有香客問我,道長赁濒,這世上最難降的妖魔是什么轨奄? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拒炎,結果婚禮上挪拟,老公的妹妹穿的比我還像新娘。我一直安慰自己击你,他們只是感情好玉组,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丁侄,像睡著了一般惯雳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸿摇,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天石景,我揣著相機與錄音,去河邊找鬼拙吉。 笑死潮孽,一個胖子當著我的面吹牛,可吹牛的內容都是我干的筷黔。 我是一名探鬼主播往史,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼必逆!你這毒婦竟也來了怠堪?” 一聲冷哼從身側響起揽乱,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤名眉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凰棉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體损拢,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年撒犀,在試婚紗的時候發(fā)現(xiàn)自己被綠了福压。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡或舞,死狀恐怖荆姆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情映凳,我是刑警寧澤胆筒,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響仆救,放射性物質發(fā)生泄漏抒和。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一彤蔽、第九天 我趴在偏房一處隱蔽的房頂上張望摧莽。 院中可真熱鬧,春花似錦顿痪、人聲如沸镊辕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丑蛤。三九已至,卻和暖如春撕阎,著一層夾襖步出監(jiān)牢的瞬間受裹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工虏束, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棉饶,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓镇匀,卻偏偏與公主長得像照藻,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子汗侵,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容

  • 前言:本篇文章目的在于梳理知識幸缕,鞏固思想,學習總結晰韵。有什么好的建議发乔,都可以留言⊙┲恚互相促進栏尚!總觀,微信支付只恨,也沒心思...
    麥穗0615閱讀 10,014評論 8 70
  • 實現(xiàn)支付寶支付的準備工作: 1.向支付寶簽約译仗,成為支付寶的商戶 簽約完成后,支付寶會提供一些必要的數(shù)據(jù)給我們 商戶...
    Anson楊春安閱讀 8,183評論 0 6
  • 前言:下面介紹微信支付的開發(fā)流程的細節(jié)官觅,圖文并茂纵菌,你可以按照我的隨筆流程過一遍代碼。包你也學會了微信支付休涤。而且支付...
    SmileFans閱讀 1,622評論 7 18
  • 微信支付的流程 注冊微信開放平臺咱圆,創(chuàng)建應用獲取appid,appSecret,申請支付功能闷堡,申請成功之后會返回一些...
    管家頗閱讀 1,529評論 2 5
  • 一樹一花一仙境隘膘,一春一季一真情。 境美情濃意相隨杠览,紅花綠葉相爭艷弯菊。 草長鶯飛風兒吹,此時正直三春暉踱阿。
    南山臺子閱讀 303評論 0 0