1、首先登录苹果账号,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型、商品的ID、以及说明信息。

2、在直播平台源码搭建后台创建沙盒测试账号:沙盒账号可以随便填写符合邮箱格式即可。

3、在直播平台源码搭建后台设置充值规则、所填的苹果项目ID和上面苹果账号里面商品的ID对应、设置商品价格信息等规则。

4、当用户点击购买时内购开始,首先接口在直播平台源码中请求订单信息、用苹果支付ID取获取商品信息,向苹果发起订单请求。

//内购开始
-(void)applePay:(NSDictionary *)dic{[self.delegate applePayShowHUD];NSDictionary *dics = @{@"uid":[Config getOwnID],@"coin":[dic valueForKey:@"coin"],@"money":[dic valueForKey:@"money_ios"],@"changeid":dic[@"id"]};[YBToolClass postNetworkWithUrl:@"Charge.getIosOrder" andParameter:dics success:^(int code, id  _Nonnull info, NSString * _Nonnull msg) {if (code == 0) {NSString *infos = [[info firstObject] valueForKey:@"orderid"];self.OrderNo = infos;//订单//苹果支付IDNSString *setStr = [NSString stringWithFormat:@"%@",[dic valueForKey:@"product_id"]];NSSet *set = [[NSSet alloc] initWithObjects:setStr, nil];self.request = [[SKProductsRequest alloc] initWithProductIdentifiers:set];self.request.delegate = self;[self.request start];  }else{[self.delegate applePayHUD];[MBProgressHUD showError:msg];}} fail:^{ }];
}

5、获取到产品信息、加入到支付队列

 (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{[self.delegate applePayHUD];self.products = response.products;self.request = nil;for (SKProduct *product in response.products) {
NSLog(@"已获取到产品信
息 %@,%@,%@",product.localizedTitle,product.localizedDescription,product.price);self.product = product;}if (!self.product) {[self showAlertView:YZMsg(@"无法获取商品信息")];return;}//3.获取到产品信息,加入支付队列SKPayment *payment = [SKPayment paymentWithProduct:self.product];[[SKPaymentQueue defaultQueue] addTransactionObserver:self];[[SKPaymentQueue defaultQueue] addPayment:payment];
}

6、根据苹果支付API回调获取支付结果

- (void)recordTransaction:(SKPaymentTransaction *)transaction {// Optional: Record the transaction on the server side...
//记录当前购买成功的商品// NSLog(@"recordTransaction");
}
- (void)provideContent:(NSString *)productIdentifier {// NSLog(@"provideContent %@", productIdentifier);//针对购买的商品,提供不同的服务。[_purchasedProducts addObject:productIdentifier];
}
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{for (SKPaymentTransaction *transaction in transactions){switch (transaction.transactionState){case SKPaymentTransactionStatePurchased:[self completeTransaction:transaction];break;case SKPaymentTransactionStateFailed:[self failedTransaction:transaction];break;case SKPaymentTransactionStateRestored:[self restoreTransaction:transaction];default:break;}}
}
- (void)completeTransaction:(SKPaymentTransaction *)transaction {//NSLog(@"completeTransaction...");[self recordTransaction: transaction];[self provideContent: transaction.payment.productIdentifier];[self verifyReceipt:transaction];[[SKPaymentQueue defaultQueue] finishTransaction: transaction];}

7、服务器验证购买凭据、提交验证请求,并获得官方验证的结果,验证支付成功,更新界面增加钻石,到此整个苹果支付内购完成。

#pragma mark 服务器验证购买凭据
- (void) verifyReceipt:(SKPaymentTransaction *)transaction
{//苹果:域名+/Appapi/Pay/notify_ios[self.delegate applePayHUD];NSURL *url = [NSURL URLWithString:[h5url stringByAppendingFormat:@"/Appapi/Pay/notify_ios"]];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.0f];request.HTTPMethod = @"POST";NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[[NSBundle mainBundle] appStoreReceiptURL]];NSData *transData = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:nil error:nil];NSString *encodeStr = [transData base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];NSString *payload = [NSString stringWithFormat:@"{\"receipt-data\" : \"%@\",\"sandbox\":%@,\"out_trade_no\" : \"%@\"}", encodeStr,@"0",self.OrderNo];//把bodyString转换为NSData数据NSData *bodyData = [payload dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];//把bodyString转换为NSData数据[request setHTTPBody:bodyData];// 提交验证请求,并获得官方的验证JSON结果NSData *result = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];if (result == nil) {// [MBProgressHUD showError:@"验证失败"];}else{NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:result options:NSJSONReadingAllowFragments error:nil];if(dict==nil){[MBProgressHUD showError:YZMsg(@"请查看网站是否开启了调试模式")];return;}if ([[dict valueForKey:@"status"] isEqual:@"success"]) {//比对字典中以下信息基本上可以保证数据安全[MBProgressHUD showError:YZMsg(@"充值成功")];[self.delegate applePaySuccess];}else{[MBProgressHUD showError:[dict valueForKey:@"info"]];}}
}

以上就是直播平台开发时iOS 开发内购功能,直播平台源码搭建过程中,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型、商品的ID、以及说明信息。
声明:本篇文章为小编原创文章,转载请注明出处及作者。

直播平台开发时iOS 开发内购功能,直播平台源码搭建相关推荐

  1. 2021最新闪拍竞拍网源码【内有小程序及源码搭建教程】

    2021最新闪拍竞拍网源码[内有小程序及源码搭建教程] 功能比较多,源码完整, 后台测试地址 http://ipai.ym929.cn/web/ admin admin 前段测试地址 http://i ...

  2. 短信平台专业版软件客户端功能详解源码搭建|移讯云短信系统

    国际短信平台专业版软件客户端功能详解|移讯云短信系统 首页显示 剩余条数 充值总数 提交总数 成功数量 失败数量 未知数量 代发数量 签名数量 最新提交 平台公告 API接口文档 短信发送 发送短信选 ...

  3. uni app ios 苹果内购

    app ios 苹果内购 的步骤 1,准备工作先要uniapp 开发ios 内购需要准备的沙盒 测试账号,在苹果手机登录沙盒账号 也就是把自己的Apple ID退出登录沙盒账号,manifest.js ...

  4. ios内购功能是什么意思

    一.最近公司很多的项目用到了内购,抽空整理下内购的详细内容吧. 1.先从内购的iTunesConnect里配置说起吧,我们先进入苹果的iTunesConnect链接https://itunesconn ...

  5. 直播平台源码搭建教程盘点直播技术中的编解码、直播协议、网络传输与简单实现

    直播平台源码搭建教程盘点直播技术中的编解码.直播协议.网络传输与简单实现 Live CheatSheet | 直播技术理论基础与实践概论 音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → ...

  6. 直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇)

    直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇) 在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. ...

  7. 扫盲!直播app源码搭建直播平台为什么要用到ShareSDK

    接触了很多搭建直播平台的客户,在跟客户对接直播平台搭建部署资料时,很多客户都对ShareSDK搞不明白,不知道具体是做什么用的,即使知道有这样一个服务,但对于ShareSDK在直播app源码搭建部署时 ...

  8. DSP:6678开发板NDK网口通信完整实现(附源码)

    如果出现图片打不开,或是显示异常,请点击下方链接阅读原文!!! DSP:6678开发板NDK网口通信完整实现(附源码) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/ ...

  9. 开发板ARM加FPGA架构运动控制卡 运动控制器 架构源码 原理图 资料包含此运动控制卡原理图,PCB图

    开发板ARM加FPGA架构运动控制卡 运动控制器 架构源码 原理图 资料包含此运动控制卡原理图,PCB图, FPGA 源码,ARM去掉算法后的框架源码. 注意实物图是旧版的,出售的图纸是新版本的,元器 ...

最新文章

  1. .NET使用OpenSSL生成的pem密钥文件[1024位]
  2. linux 查看 文档 不显示注释 命令
  3. mapreduce介绍
  4. 德国艺术家用99部手机成功在Google地图上制造交通阻塞
  5. 这个口罩小朋友戴上就不肯脱!真相原来是这样!
  6. 设置qt的QChart曲线背景色透明
  7. Python工作笔记002---PYTHON之DEF函数
  8. win10系统远程ubuntu(linux)桌面
  9. javabean封装mysql
  10. ELK 日志管理系统,初次尝试记录
  11. php获取手机品牌,9 大国产手机品牌相机水印大比拼,哪款才是你的最爱?
  12. 计算机excel无法打开,双击Excel软件无法打开表格文件怎么办?
  13. 进程调度时间片轮转c语言,时间片轮转调度算法的C语言模拟实现
  14. docker 安装 禅道系统
  15. Atitit 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc
  16. 数据传输速率与带宽之间的关系
  17. 计算机绘图作业西南交大,西南交大计算机绘图A 离线作业.doc
  18. icon图标 地址栏 收藏夹显示 代码
  19. sql server中的怎么把数值型转换为字符串
  20. linux dd 备份uboot,刷机前如何备份uboot、分区、编程器固件?路由器刷机备份命令使用方法...

热门文章

  1. 解决maven 引用JDK内部类编译错误 程序包:com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler不存在...
  2. mysql数据库出现缓慢_MySQL查询缓慢的N种原因,以及N+1种解决方法
  3. Jsp之一 WEB应用程序概述
  4. glut glfw glad SOIL glm freetype等配置
  5. ZJUT online OJ c++通关模拟题(problem1335-problem1516) 题解
  6. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
  7. the mid-autumn festival
  8. 【数据可视化】bar函数绘制简单柱状图
  9. 传奇单机架设教程 小白也能开传奇
  10. 2022.1.25复盘