怎么装备内购产品

Flutter 接入iOS苹果内购付出踩坑进程

坑1:项目与价格装备

苹果内购付出和咱们平常接入付出宝或许微信付出有很大的不同。

  1. 苹果内购付出的价格只能选择,不能直接设置。如图:

Flutter 接入iOS苹果内购付出踩坑进程
2. 苹果内购付出是经过装备项目的形式来完结付出的。咱们应该把每个项目看作一个装备在苹果后台的产品,而不只是是一个付出装备。这样苹果内购比较好了解一点。

  1. 项目的类型有许多种,每一种作用不同,乃至还会影响审理

  2. 第一次装备好一个项目后,需求从头提一个版别后才调生效的。所以,第一次只能经过沙盒查验了。

坑2:内购项目类型

  1. 耗费型产品

可以耗费运用的产品, 比方游戏中的金币, 钻石等, 可以用来购买运用内虚拟物品的钱银。

  1. 非耗费型钻石婚约之独占奥秘妻产品

无法被耗费的产品,比方一些教育型APP中的课程, 再比方一些赛钻石婚约之独占奥秘妻车游戏中的赛道, 这类产品需求在接口类型审理增加康复购买按钮, 用于用户购买往后再误删除或其他原因卸载APP后的康复流程, 否则提交审理会被拒绝。

  1. application续期订阅

此类产品与耗费型产品相似, 比方一个月接口无权限的会员, 一个季度的会员等,与耗费型产品的差异在于, 这类产品在验证凭据时需求传递共享秘钥

  1. 主动续期订阅

这类产品和其他产品的流程也有少数不同, 运用比方视频APP中的接连包月会员, 此类产品到期会主动扣费, 服务器的验证逻辑也会有所不同

在国钻石等级内用的比较多的类型应该是耗费型产品,咱们一般都是经过自己的服务器来处理付出逻辑的。而运用订阅类型产品还要处理一些其他的逻辑。

留神:一切的耗费型产品就需求完结 “康复购买” 功用的,否则过不了审理。

耗费型付出流程

Flutter 接入iOS苹果内购付出踩坑进程

坑3:苹果内购漏单问题处理

  • 苹果内购付出和微信/付出宝付出的流程有一个很大的不iOS同。

微信/付出宝付出的作用经过notify_url 回调付出作用到自己的服务器。这样就能极APP大的确保了用户付出成功后,后台是可以接受到付出作用的。
而苹果内购付出成功后还需接口卡求客户端央求服务器的验证的接口,验证成功后才调判别付出有用。这个进程中简略由于网络闪退等问题导致漏单状况。

  • 漏单状况的处理

针对上面的分析,咱们需求在购买ios是什么意思前让后台产生一个订单。在得知苹果付出成功后,将订单和苹果回来的验证数据保接口无权限是什么意思存到本地。终究央求后台接口进行验证,验证经过了再删除本地的验证数据。否者下次翻开APP要主动进行验证。

坑4:查验时只能运用沙盒来查验,即便是Tesapp是什么意思tFlight上也是沙盒查验

说不上很坑,只是开发完不能经过实践付出来查验,让人心里没底。实践查验要上线之后测,出问钻石婚约之独占奥秘妻题了也只能是从头提一个版别来修改了。不过让人值得安慰的是在沙盒没问题上线了一般也没问题的。

坑5:实践付出查验

由于苹果内购要收取30%的手续费。那么实践付出查验就不能用产品的实践金额来付出了APP。只能装备1元的产品来进行查验。而问题便是小额的付出接口测试,苹果的扣款延时或许比较大。咱们就遇到接连的付出三次后,产品购买成功了。不过绑定的付出宝没有扣款提示。还认为漏扣钱了,作用几个小时后才扣款。

Flutter 苹果内购组件flutter_inapp_purchas苹果xe 的运用

  1. 下载依托
  flutter_inapp_purchase: ^3.0.1
  1. 初始化组件与监听
    var res苹果官网ult = await FlutterInappPurchase.instance.initConnection;
//设置作用监听
// 更接口和抽象类的差异新购买订阅音讯
_purchaseUpdatedSubscription =
FlutterInappPurchase.purchaseUpdated.listen((productItem) {
print('purchase-updated: $product苹果13Item');
if(productItem.transactionStateIOS == TransactionState.purchased) {
//todo
}else{
closeProgressDialog();
}
});
// 购买报错订阅音讯
_purchaseErrorSubscription =
FlutterInappPurchase.purchaseError.listen((purch钻石婚约之独占奥秘妻aseError) {
print('purchase-error: $purchaseError');
clo钻石王牌seProgressDialog();
});
  1. 获取苹果服务器上的项目列表,即运用不上,付出之前也要获取一次,否者付出失利app是什么意思
List<IAPItem> items =
await FlutterInappPurchase.in钻石香烟stance.getProducts( ['0001', '0002', '0003'] );
  1. 拉起苹果付出
var result = FlutterInappios模拟器Purchase接口是什么.instanc接口无权限是什么意思e.requestPu钻石价格rchase(‘0001’);
  1. 获取需求 “康复购买” 的列表,耗费型产品需求处理
List<PurchasedItem> items =
await FlutterInappPurchase.instance.getAvailablePurchases();

如果创立的是耗费型产品,常用的方法就这些了。

总结

苹果内购并不凌乱,只是关于第一次触摸苹果内购的人来ios最好玩的手游说,许多装备都难以想象的。不过你后边了解了就会焕然大悟。

所以,我这篇文章并不是一个很详尽的教程,不过是把一些坑和一些对苹果付出的了解写下来算了。不过,我相信你看完这篇文章后,再去做苹果内购会顺许多。