国产探花免费观看_亚洲丰满少妇自慰呻吟_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);  }];}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 娱乐| 辉县市| 彰化县| 育儿| 简阳市| 大港区| 通渭县| 隆昌县| 稻城县| 新竹市| 罗田县| 普洱| 新巴尔虎右旗| 垫江县| 长寿区| 大渡口区| 衡山县| 牡丹江市| 龙井市| 乳山市| 浑源县| 中江县| 漳州市| 蓬溪县| 开远市| 垣曲县| 内黄县| 和硕县| 阳谷县| 齐河县| 蓬莱市| 台山市| 田阳县| 成武县| 图木舒克市| 永福县| 通化县| 辉县市| 东平县| 宁津县| 盱眙县|