国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

詳解IOS 集成微信支付功能的實現方法

2020-02-19 15:46:41
字體:
來源:轉載
供稿:網友

說到支付,相信大家最熟悉的有微信支付和支付寶支付,目前我們生活中經常接觸到的應該是微信支付,其實微信支付和支付寶支付在后臺操作是差不多的,下面是武林技術頻道小編為大家帶來的詳解IOS 集成微信支付功能的實現方法。

IOS 集成微信支付功能的實現方法

第一步:集成微信的SDK

下載對應SDK或示例,最后可以看看示例程序

第二步:在Xcode中填寫微信開放平臺申請的Appid

Xcode>info>URL Types? 中新建加入Appid

第三步:在Appdelegate.m 中注冊微信支付 和回調

#import "WXApi.h"添加 代理WXApiDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  // Override point for customization after application launch.  //self.window.backgroundColor = [UIColor clearColor];  // 微信支付注冊  [WXApiregisterApp:PAY_WEIXIN_ID];    returnYES;}// ios 9.0以上系統版本回調- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{  // 微信  if ([url.schemeisEqualToString:PAY_WEIXIN_ID]) {    [WXApihandleOpenURL:url delegate:(id<WXApiDelegate>)self];  }    // 支付寶  if ([url.schemeisEqualToString:@"SearchPigeonWorld"]) {    //跳轉支付寶錢包進行支付,處理支付結果    [[AlipaySDKdefaultService] processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {      if ([self.appMyDelegaterespondsToSelector:@selector(payCenterWeixinOnResultWith:)]) {        [self.appMyDelegatepayCenterWeixinOnResultWith:[resultDic[@"resultStatus"]intValue] ==9000 ? YES :NO];      }    }];  }  returnYES;}//支付成功時調用,回到第三方應用中 ios 9.0以下系統版本回調- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{  // 微信  if ([url.schemeisEqualToString:PAY_WEIXIN_ID])  {    [WXApihandleOpenURL:url delegate:(id<WXApiDelegate>)self];  }    // 支付寶  if ([url.hostisEqualToString:PAY_ALIPAY_appID]) {    //跳轉支付寶錢包進行支付,處理支付結果    [[AlipaySDKdefaultService] processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {      if ([self.appMyDelegaterespondsToSelector:@selector(payCenterWeixinOnResultWith:)]) {        [self.appMyDelegatepayCenterWeixinOnResultWith:[resultDic[@"resultStatus"]intValue] ==9000 ? YES :NO];      }    }];  }      returnYES;}/** 微信自己的結果返回方法 @param resp 返回結果狀態 */- (void)onResp:(BaseResp*)resp{  if([respisKindOfClass:[PayRespclass]]){    BOOL isPaySuccess =NO;    switch (resp.errCode) {      caseWXSuccess:        isPaySuccess = YES;        break;      caseWXErrCodeUserCancel:        isPaySuccess = NO;        break;      caseWXErrCodeSentFail:        isPaySuccess = NO;        break;      caseWXErrCodeAuthDeny:        isPaySuccess = NO;        break;      default:        isPaySuccess = NO;        break;    }    if ([self.appMyDelegaterespondsToSelector:@selector(payCenterWeixinOnResultWith:)]) {      [self.appMyDelegatepayCenterWeixinOnResultWith:isPaySuccess];    }  }}

第四步:在使用微信的地方調用支付方法

#pragma mark 2.2.14(10)使用微信進行付款,獲取微信加密信息- (void)getWebResponsePayWeixinInfo {  NSDictionary *parameters =@{@"key" :appDelegate.userKeyString,                 @"foundRecordId" : [self.payInfoDictobjectForKey:@"foundRecordId"]};  [MBProgressHUDshowMessage:@""];  [WebDataResponseInterfaceSessionManagerPostWebDataWithApi:WEBInterFace_Good_CreateWeiXinPayOrderandParameters:parameters andSuccess:^(id successObject) {    MYLOG(@"%@", successObject);    [MBProgressHUDhideHUD];    if ([successObject[@"status"]isEqualToString:@"success"]) {      successObject = [successObject objectForKey:@"value"];      // 微信支付      //需要創建這個支付對象      PayReq *req  = [[PayReqalloc] init];      //由用戶微信號和AppID組成的唯一標識,用于校驗微信用戶      req.openID = successObject[@"appid"];            // 商家id,在注冊的時候給的      req.partnerId = [successObjectobjectForKey:@"partnerid"];            // 預支付訂單這個是后臺跟微信服務器交互后,微信服務器傳給你們服務器的,你們服務器再傳給你      req.prepayId = [successObjectobjectForKey:@"prepayid"];            // 根據財付通文檔填寫的數據和簽名      //這個比較特殊,是固定的,只能是即req.package = Sign=WXPay      req.package  = [successObjectobjectForKey:@"package"];            // 隨機編碼,為了防止重復的,在后臺生成      req.nonceStr = [successObjectobjectForKey:@"noncestr"];            // 這個是時間戳,也是在后臺生成的,為了驗證支付的      req.timeStamp = [[successObjectobjectForKey:@"timestamp"]doubleValue];            // 這個簽名也是后臺做的      req.sign = [successObjectobjectForKey:@"sign"];            //發送請求到微信,等待微信返回onResp      [WXApisendReq:req];    } else {      [MBProgressHUDshow:[successObject objectForKey:@"value"]icon:nilview:self.view];    }      } andFailure:^(NSError *error) {    [MBProgressHUDhideHUD];    MYLOG(@"error: %@", error);  }];}以上就是武林技術頻道小編介紹的詳解IOS 集成微信支付功能的實現方法,相信大家都了解了,可以在開發項目中嘗試運用。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 石渠县| 梁平县| 屏山县| 游戏| 剑川县| 浮山县| 泗水县| 礼泉县| 红桥区| 道真| 子洲县| 巩义市| 元氏县| 祁门县| 若羌县| 垣曲县| 浮山县| 武义县| 怀安县| 锦屏县| 永丰县| 洞头县| 廊坊市| 彭州市| 长丰县| 泌阳县| 黄平县| 满洲里市| 晋城| 阳朔县| 山西省| 神农架林区| 靖西县| 措美县| 溆浦县| 巍山| 天气| 霍林郭勒市| 哈巴河县| 桓台县|