微信

微信支付demo

微信支付demo下載地址

但是現(xiàn)在下來(lái),運(yùn)行報(bào)錯(cuò)


7A6E5B4D93DEE06188BCDC4F60BBBD5C.jpg

解決方案:添加庫(kù) CFNetwork.framework libc++.tbd

然后運(yùn)行伺绽,進(jìn)入app就奔潰

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x60000024ef40'

在buddle Seeting 里面的Other Linker Flags 中添加-ObjC就可以了养泡。

但是點(diǎn)擊發(fā)起微信支付返回的是支付失敗,不管它了奈应,主要看代碼就行

微信支付業(yè)務(wù)流程

chapter8_3_1.png

商戶系統(tǒng)和微信支付系統(tǒng)主要交互說(shuō)明:

步驟1:用戶在商戶APP中選擇商品瓤荔,提交訂單碉哑,選擇微信支付踏揣。

步驟2:商戶后臺(tái)收到用戶支付單狭瞎,調(diào)用微信支付統(tǒng)一下單接口。參見(jiàn)【統(tǒng)一下單API】程梦。

步驟3:統(tǒng)一下單接口返回正常的prepay_id,再按簽名規(guī)范重新生成簽名后橘荠,將數(shù)據(jù)傳輸給APP屿附。參與簽名的字段名為appid,partnerid哥童,prepayid挺份,noncestr,timestamp贮懈,package匀泊。注意:package的值格式為Sign=WXPay

步驟4:商戶APP調(diào)起微信支付。api參見(jiàn)本章節(jié)【app端開(kāi)發(fā)步驟說(shuō)明

步驟5:商戶后臺(tái)接收支付通知朵你。api參見(jiàn)【支付結(jié)果通知API

步驟6:商戶后臺(tái)查詢支付結(jié)果各聘。,api參見(jiàn)【查詢訂單API

開(kāi)始操作

前期準(zhǔn)備
1 pod 接入
pod 'WechatOpenSDK'

sdk里包含了微信登陸抡医,微信分享躲因,微信支付

2 設(shè)置URL type 添加 URL schme
image.png
3 添加白名單
image.png
4重寫(xiě)AppDelegate 的handleOpenURL 和openURL方法
image.png
// NOTE: 9.0以前使用新API接口
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉(zhuǎn)支付寶錢(qián)包進(jìn)行支付,處理支付結(jié)果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"result = %@",resultDic);
            [self.window makeToast:@"訂單支付成功"];
            [self updateVIPAccess];
        }];
        return YES;
        
    }else if ([url.host isEqualToString:@"pay"] || [url.host isEqualToString:@"oauth"] || [sourceApplication isEqualToString:@"com.apple.MobileSMS"]) {
        //微信支付忌傻,登陸
        return [WXApi handleOpenURL:url delegate:[EYWXLogin sharedManager]];
    }else if ([url.host isEqualToString:@"platformId=wechat"]) {
        //微信分享
        return [WXApi handleOpenURL:url delegate:[EYWXLogin sharedManager]];
    }
    else if([url.host isEqualToString:@"qzapp"]){
        //QQ登錄
        return [TencentOAuth HandleOpenURL:url];
    }else if ([url.host isEqualToString:@"response_from_qq"]) {
        //QQ分享
        [QQApiInterface handleOpenURL:url delegate:self];
        return [TencentOAuth HandleOpenURL:url];
    }
    return YES;
}

// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉(zhuǎn)支付寶錢(qián)包進(jìn)行支付大脉,處理支付結(jié)果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            
            if ([resultDic[@"resultStatus"] intValue] == 9000) {
                NSLog(@"%@",resultDic);
                [self.window makeToast:@"訂單支付成功"];
                [self updateVIPAccess];
            }else{
                NSLog(@"%@",resultDic);
                [self.window makeToast:resultDic[@"memo"]];
            }
        }];
        
        return YES;
    }else if ([url.host isEqualToString:@"pay"] || [url.host isEqualToString:@"oauth"] || [[options objectForKey:UIApplicationOpenURLOptionsSourceApplicationKey] isEqualToString:@"com.apple.MobileSMS"]) {
        
        //微信支付,登陸
        return [WXApi handleOpenURL:url delegate:[EYWXLogin sharedManager]];
    }else if ([url.host isEqualToString:@"platformId=wechat"]) {
        //微信分享
        return [WXApi handleOpenURL:url delegate:[EYWXLogin sharedManager]];
    }
    else if([url.host isEqualToString:@"qzapp"]){
        //QQ登錄
        return [TencentOAuth HandleOpenURL:url];
    }else if ([url.host isEqualToString:@"response_from_qq"]) {
        //QQ分享
        [QQApiInterface handleOpenURL:url delegate:self];
        return [TencentOAuth HandleOpenURL:url];
    }
    return YES;
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    if ([url.host isEqualToString:@"response_from_qq"]) {
        //QQ分享
        [QQApiInterface handleOpenURL:url delegate:self];
        return [TencentOAuth HandleOpenURL:url];
    }else if([url.host isEqualToString:@"qzapp"]){
        //QQ登錄
        return [TencentOAuth HandleOpenURL:url];
    }
    else {
        //return NO;
        return [WXApi handleOpenURL:url delegate:[EYWXLogin sharedManager]];
    }
}

功能代碼

1注冊(cè)微信
BOOL res = [WXApi registerApp:kWXAppConfigWeChatAppId];
2實(shí)現(xiàn)WXApiDelegate協(xié)議兩個(gè)方法

-(void) onReq:(BaseReq*)req
-(void) onResp:(BaseResp*)resp

如果你的程序要發(fā)消息給微信水孩,那么需要調(diào)用WXApi里的sendReq函數(shù)

2先實(shí)現(xiàn)上述回調(diào)方法镰矿,包含微信登陸 微信分享 微信支付所有功能的回調(diào)
#pragma mark - WXApiDelegate

-(void) onReq:(BaseReq*)req{
    
    
}

-(void) onResp:(BaseResp*)resp{
    
    if([resp isKindOfClass:[SendAuthResp class]]) {
        SendAuthResp* authResp = (SendAuthResp*)resp;
        /* Prevent Cross Site Request Forgery */
        NSLog(@"autoResp state:%@  errcode:%d",authResp.state,resp.errCode);
        
        switch (resp.errCode) {
            case WXSuccess:{
                NSLog(@"RESP:code:%@,state:%@\n", authResp.code, authResp.state);

                !_resultBlock?:_resultBlock(WXLoginResultTypeSuccess);
                NSLog(@"微信登陸成功");
#pragma mark 可獲取用戶信息 ,但是secret我拿不到 官網(wǎng)文檔有詳細(xì)的介紹
               
                }
                break;
            case WXErrCodeAuthDeny:

                !_resultBlock?:_resultBlock(WXLoginResultTypeAuthDeny);
                NSLog(@"微信登錄授權(quán)失敗");
                break;
            case WXErrCodeUserCancel:
                NSLog(@"微信登錄用戶取消");
                !_resultBlock?:_resultBlock(WXLoginResultTypeCancel);

            default:
                break;
        }
    }
    else if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
        
        NSLog(@"分享后 --- %d %@ %d", resp.errCode, resp.errStr, resp.type);
        if(resp.errCode==0){  // 分享成功
            NSLog(@"分享成功");
            //[[NSNotificationCenter defaultCenter] postNotificationName:@"thirdShare" object:nil userInfo:@{@"isSuccess":@"1"}];
        }else {
            NSLog(@"分享失敗");
            //[[NSNotificationCenter defaultCenter] postNotificationName:@"thirdShare" object:nil userInfo:@{@"isSuccess":@"0"}];
        }
    }
    else if([resp isKindOfClass:[PayResp class]]){
        
        switch (resp.errCode) {
                case WXSuccess:
                //當(dāng)這里收到支付成功時(shí)荷愕,一定要請(qǐng)求服務(wù)器查詢是否支付成功衡怀,不要以客戶端的返回作為結(jié)果判定
                
                NSLog(@"支付成功");
                !_payResultBlock?:_payResultBlock(WXPayResultTypeSuccess);
                break;
                
                case WXErrCodeUserCancel:
                NSLog(@"支付前用戶手動(dòng)取消");
                !_payResultBlock?:_payResultBlock(WXPayResultTypeCancel);
                break;
                
        
                
            default:
                !_payResultBlock?:_payResultBlock(WXPayResultTypeFailure);
                break;
        }
    }
}
微信支付
/**
 微信支付
 
 @param params 參數(shù) 商品id 商品數(shù)量
 */
-(void)weChatPay:(NSDictionary *)params result:(WXPayResultBlock)payResBlock{
    
    
    _payResultBlock = payResBlock;
    if (![WXApi isWXAppInstalled]) {
        !_payResultBlock?:_payResultBlock(WXPayResultTypeUnstalled);
        return;
    }
    //第一步 用戶已經(jīng)選好商品并且選擇的是微信支付
    //第二部 app將用戶選擇的信息發(fā)送給后臺(tái) 后臺(tái)收到用戶支付單棍矛,調(diào)用微信支付統(tǒng)一下單接口
    [ILNetworking postEncryptAndDecryptResponse:@"WeChatPayOrderURL" params:params success:^(ILApiResult *apiResult) {
        //第三部 后臺(tái)統(tǒng)一下單接口返回正常的prepay_id  按照簽名規(guī)范重新生成簽名 ,將數(shù)據(jù)傳輸給app
        NSLog(@"后臺(tái)統(tǒng)一下單后返回的信息:%@",(NSDictionary *)apiResult.result);
        if(apiResult.isSuccess){
            if(apiResult.result){
                NSDictionary * result = (NSDictionary *)apiResult.result;
                PayReq * req =[[PayReq alloc] init];
                req.openID = [result objectForKey:@"appid"];
                req.nonceStr = [result objectForKey:@"noncestr"];
                req.package = [result objectForKey:@"package"];
                req.partnerId = [result objectForKey:@"partnerid"];
                req.prepayId = [result objectForKey:@"prepayid"];
                req.sign = [result objectForKey:@"sign"];
                req.timeStamp = [[result objectForKey:@"timestamp"] intValue];
                [WXApi sendReq:req];
            }
            else{
                NSLog(@"獲取訂單失敗");
                !_payResultBlock?:_payResultBlock(WXPayResultTypeFailure);
            }
        }
        else{
            NSLog(@"獲取訂單錯(cuò)誤信息;%@",apiResult.msg);
            !_payResultBlock?:_payResultBlock(WXPayResultTypeFailure);
        }
        
    } failure:^(NSError *error) {
        NSLog(@"微信支付網(wǎng)絡(luò)出現(xiàn)問(wèn)題");
        !_payResultBlock?:_payResultBlock(WXPayResultTypeFailure);
    }];
}

微信登陸
/**
 微信登陸
 
 @param viewController 登陸界面的控制器
 @param resultBlock 登陸結(jié)果的回調(diào)
 */
-(void)loginWithViewController:(UIViewController*)viewController  resultCallBack:(WXLoginResultBlock) resultBlock{
    
    _resultBlock = resultBlock;
    if (![WXApi isWXAppInstalled]) {
        !_resultBlock?:_resultBlock(WXLoginResultTypeUnstalled);
        return;
    }
    SendAuthReq *req = [[SendAuthReq alloc] init];
    req.scope = wxScope;
    req.state = wxState;
    
    
    [WXApi sendAuthReq:req viewController:viewController delegate:self];
   
}
微信分享 沒(méi)有封裝 可分享至好友 朋友圈 收藏
/**
 分享純文字

 @param textString 文字
 */
+(void)wxSharetextMessage:(NSString*)textString{
    
    SendMessageToWXReq * req = [[SendMessageToWXReq alloc] init];
    req.text = textString;
    req.bText = YES;
    req.scene = WXSceneSession;
    [WXApi sendReq:req];
}




/**
 分享圖片
 
 @param image 圖片
 @param thumbImage 縮略圖
 */
+(void)wxShareImageMessage:(UIImage *)image thumbImage:(UIImage *)thumbImage{
    WXMediaMessage *message = [WXMediaMessage message];
    // 設(shè)置消息縮略圖的方法
    [message setThumbImage:thumbImage];
    // 多媒體消息中包含的圖片數(shù)據(jù)對(duì)象
    WXImageObject *imageObject = [WXImageObject object];
    
    //UIImage *image = [UIImage imageNamed:@"要分享的圖片名"];
    
    // 圖片真實(shí)數(shù)據(jù)內(nèi)容
    
    NSData *data = UIImagePNGRepresentation(image);
    imageObject.imageData = data;
    // 多媒體數(shù)據(jù)對(duì)象抛杨,可以為WXImageObject够委,WXMusicObject,WXVideoObject怖现,WXWebpageObject等茁帽。
    message.mediaObject = imageObject;
    
    SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
    req.bText = NO;
    req.message = message;
    req.scene = WXSceneSession;// 分享到朋友圈
    [WXApi sendReq:req];

}



/**
 分享音樂(lè)
 
 @param musicUrl 音樂(lè)的路徑
 @param thumbImage 縮略圖
 */
+(void)wxShareMusicMessage:(NSString *)musicUrl thumbImage:(UIImage *)thumbImage{
    
    SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
    
    // 是否是文檔
    req1.bText =  NO;
    
    //    WXSceneSession  = 0,        /**< 聊天界面    */
    //    WXSceneTimeline = 1,        /**< 朋友圈      */
    //    WXSceneFavorite = 2,
    
    
    req1.scene = WXSceneSession;
    
    //創(chuàng)建分享內(nèi)容對(duì)象
    WXMediaMessage *urlMessage = [WXMediaMessage message];
    urlMessage.title = @"分享一首歌";//分享標(biāo)題
    urlMessage.description = @"一首小歌,放松一下";//分享描述
    
    [urlMessage setThumbImage:thumbImage];//分享圖片,使用SDK的setThumbImage方法可壓縮圖片大小
    
    //創(chuàng)建多媒體對(duì)象
    
     NSString *kLinkURL = musicUrl;//@"http://bd.kuwo.cn/yinyue/718535?from=baidu";
    
    WXMusicObject *music = [WXMusicObject object];
    music.musicUrl = kLinkURL;//分享鏈接
    
    //完成發(fā)送對(duì)象實(shí)例
    urlMessage.mediaObject = music;
    req1.message = urlMessage;
    
    //發(fā)送分享信息
    [WXApi sendReq:req1];
    
    
}



/**
 分享視頻

 @param videoUrl 視頻的路徑
 @param thumbImage 縮略圖
 */
+(void)wxShareVideoMessage:(NSString *)videoUrl thumbImage:(UIImage *)thumbImage{
    
    SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
    
    // 是否是文檔
    req1.bText =  NO;
    
    //    WXSceneSession  = 0,        /**< 聊天界面    */
    //    WXSceneTimeline = 1,        /**< 朋友圈      */
    //    WXSceneFavorite = 2,
    
    
    req1.scene = 0;
    
    //創(chuàng)建分享內(nèi)容對(duì)象
    WXMediaMessage *urlMessage = [WXMediaMessage message];
    urlMessage.title = @"分享視頻";//分享標(biāo)題
    urlMessage.description = @"小視頻";//分享描述
    
    [urlMessage setThumbImage:thumbImage];//分享圖片,使用SDK的setThumbImage方法可壓縮圖片大小
    
    //創(chuàng)建多媒體對(duì)象
    
    NSString *kLinkURL = videoUrl;
    
    WXVideoObject *video = [WXVideoObject object];
    video.videoUrl = kLinkURL;//分享鏈接
    
    //完成發(fā)送對(duì)象實(shí)例
    urlMessage.mediaObject = video;
    req1.message = urlMessage;
    
    //發(fā)送分享信息
    [WXApi sendReq:req1];
    
    
}



/**
 分享鏈接

 @param linkUrl 鏈接
 @param thumbImage 縮略圖
 */
+(void)wxShareLinkMessage:(NSString *)linkUrl thumbImage:(UIImage *)thumbImage{
    
    NSString *kLinkURL = linkUrl;//
    
    static NSString *kLinkTitle = @"我簡(jiǎn)書(shū)的主頁(yè)";
    static NSString *kLinkDescription = @"里面是一些自己總結(jié)的小知識(shí)點(diǎn)";
    
    SendMessageToWXReq *req1 = [[SendMessageToWXReq alloc]init];
    
    // 是否是文檔
    req1.bText =  NO;
    
    //    WXSceneSession  = 0,        /**< 聊天界面    */
    //    WXSceneTimeline = 1,        /**< 朋友圈      */
    //    WXSceneFavorite = 2,
    
    
    req1.scene = WXSceneSession;
    
    //創(chuàng)建分享內(nèi)容對(duì)象
    WXMediaMessage *urlMessage = [WXMediaMessage message];
    urlMessage.title = kLinkTitle;//分享標(biāo)題
    urlMessage.description = kLinkDescription;//分享描述
    [urlMessage setThumbImage:thumbImage];//分享圖片,使用SDK的setThumbImage方法可壓縮圖片大小
    
    //創(chuàng)建多媒體對(duì)象
    WXWebpageObject *webObj = [WXWebpageObject object];
    webObj.webpageUrl = kLinkURL;//分享鏈接
    
    //完成發(fā)送對(duì)象實(shí)例
    urlMessage.mediaObject = webObj;
    req1.message = urlMessage;
    
    //發(fā)送分享信息
    [WXApi sendReq:req1];
    
   
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屈嗤,隨后出現(xiàn)的幾起案子潘拨,更是在濱河造成了極大的恐慌,老刑警劉巖饶号,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铁追,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡茫船,警方通過(guò)查閱死者的電腦和手機(jī)琅束,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)算谈,“玉大人涩禀,你說(shuō)我怎么就攤上這事∪谎郏” “怎么了艾船?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)高每。 經(jīng)常有香客問(wèn)我屿岂,道長(zhǎng),這世上最難降的妖魔是什么觉义? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任雁社,我火速辦了婚禮,結(jié)果婚禮上晒骇,老公的妹妹穿的比我還像新娘霉撵。我一直安慰自己,他們只是感情好洪囤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布徒坡。 她就那樣靜靜地躺著,像睡著了一般瘤缩。 火紅的嫁衣襯著肌膚如雪喇完。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天剥啤,我揣著相機(jī)與錄音锦溪,去河邊找鬼不脯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛刻诊,可吹牛的內(nèi)容都是我干的防楷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼则涯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼复局!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起粟判,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤亿昏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后档礁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體角钩,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年呻澜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彤断。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡易迹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出平道,到底是詐尸還是另有隱情睹欲,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布一屋,位于F島的核電站窘疮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏冀墨。R本人自食惡果不足惜闸衫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诽嘉。 院中可真熱鬧蔚出,春花似錦、人聲如沸虫腋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悦冀。三九已至趋翻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盒蟆,已是汗流浹背踏烙。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工师骗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讨惩。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓辟癌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親步脓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子愿待,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 今日推薦 經(jīng)常閱讀博客是個(gè)好習(xí)慣推薦鴻洋CSDN的博客 微信支付相關(guān)文章 詳細(xì)介紹Android開(kāi)發(fā)集成微信支付(...
    MrQ_Android閱讀 6,182評(píng)論 9 52
  • 準(zhǔn)備工作: 需要公司的營(yíng)業(yè)執(zhí)照,稅務(wù)信息靴患,等老板的身份證信息等仍侥,我記得,用這些材料鸳君,去支付寶注冊(cè)一個(gè)商家賬戶(審核...
    Hevin_Chen閱讀 6,809評(píng)論 0 9
  • 自己總結(jié)的微信支付寶支付流程和注意點(diǎn): 準(zhǔn)備工作: 需要公司的營(yíng)業(yè)執(zhí)照农渊,稅務(wù)信息,等老板的身份證信息等或颊,我記得砸紊,用...
    Www劉閱讀 18,569評(píng)論 2 50
  • 關(guān)于微信支付 生活中的微信支付 目前我們?nèi)粘I钪薪佑|得比較多的線上電子支付方式主要有兩種,一種是支付寶囱挑,另一種就...
    積_漸閱讀 3,920評(píng)論 3 26
  • 類 什么是類 類是定義同一類所有對(duì)象的變量和方法的藍(lán)圖或原型 C++的類與結(jié)構(gòu)的區(qū)別 在面向?qū)ο笾?算法與結(jié)構(gòu)體被...
    帥碧閱讀 259評(píng)論 1 1