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

首頁 > 系統 > iOS > 正文

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

2020-07-26 02:40:31
字體:
來源:轉載
供稿:網友

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

第一步:集成微信的SDK

https://pay.weixin.qq.com/wiki/doc/api/index.html    

點擊進入

下載對應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);  }];}

如有疑問請留言或者到本站社區交流討論,感謝閱讀, 希望通過本文能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固原市| 佳木斯市| 临城县| 江都市| 木兰县| 乐平市| 光山县| 广昌县| 永定县| 高清| 天镇县| 枣庄市| 西乌珠穆沁旗| 舒城县| 承德县| 淅川县| 盘锦市| 深泽县| 达孜县| 休宁县| 外汇| 枝江市| 九台市| 重庆市| 潍坊市| 谷城县| 蓝山县| 南丰县| 昌图县| 大厂| 右玉县| 乐至县| 通许县| 九江县| 昌平区| 南充市| 虹口区| 仪征市| 苗栗县| 灵台县| 乡宁县|