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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:44:27
字體:
來源:轉載
供稿:網友

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);  }];}

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晴隆县| 安康市| 晋江市| 德钦县| 乌拉特前旗| 兴业县| 定日县| 睢宁县| 平顶山市| 招远市| 赣榆县| 余姚市| 分宜县| 昌邑市| 西丰县| 司法| 襄汾县| 保靖县| 建湖县| 合水县| 清丰县| 望谟县| 和田市| 武清区| 磐安县| 嘉荫县| 随州市| 霍山县| 会昌县| 珠海市| 郓城县| 栖霞市| 兰坪| 宕昌县| 合川市| 仙居县| 六安市| 西充县| 鹤峰县| 谢通门县| 许昌市|