后台Appstore审核报告PGPaySDK不允许上架问题A:数码产品(如购买会员等不需要发货的产品),苹果规定,应用内支付必须使用AppleIAP,给Apple分成30%。打包时不要勾选微信、支付宝等其他支付方式。如果你提交的包里有微信支付宝等支付sdk,即使你不用,Appstore也会认为你有隐藏方法,以后会绕过iap,不会给苹果分一杯羹,所以您的应用程序将被拒绝。云打包时在manifest中选择了支付模块,但是在sdk配置中去掉了微信支付和支付宝支付。很多开发者的Android版本包含微信和支付宝支付,此时注意单独判断。实现iap支付1.在Appstorehttps://developer.apple.com/a...创建项目2.进入创建的项目创建内购项目内购项目有四种:消耗品用户可以通过购买游戏中的生命或宝石等各种消耗品来进一步探索应用程序。消耗品只能使用一次,使用后失效,可以再次购买。非消耗品用户可以购买非消耗品来解锁应用中的更多高级功能。非消耗品仅购买一次且不会过期(例如照片修饰应用程序中的附加滤镜)。Apple可以托管您的非消耗品。自动续订订阅允许用户购买经常性的持续服务或更新内容(例如云存储或每周杂志更新)。除非用户选择取消,否则此类订阅会自动续订。非续订订阅可能会购买限时服务或内容(例如流媒体内容的季度订阅)。此类订阅不会自动续订,用户每次都需要续订。注意:内购商品的productid是唯一的,不能重复。创建完成后:3.uniapp实现IAP支付:大致流程:先调用plus.payment.getChannels获取支付通道,IAP支付通道ID为“appleiap”,调用PaymentChannel对象的requestOrder方法ID“appleiap”,就像Appstore请求一个有效的商店列表。注意:需要先调用requestOrder方法,再调用payment.request方法,否则直接调用payment.request会报错。调用plus.payment.request方法发起支付请求。传递给语句的参数是一个JSON对象。可以设置以下参数productidString(required)待支付的产品ID(必须是调用requestOrder返回的有效产品ID)usernameString(Optional)购买产品的用户的用户名。quantityString(可选)购买产品的数量。不填则默认为1。调用后台接口验证订单信息。3.1获取支付通道:3.2通过productidplusReady(){uni.showLoading({title:"Loading",})获取对应的商品信息常量那个=这个;constIAPOrders=["1","4","3"];//在uni-app中包含这个函数里面的代码放在vue页面的onLoad生命周期中plus.payment.getChannels(function(channels){console.log("channels-------------",channels);for(variinchannels){if(channels[i].id=="appleiap"){console.log("channels[i]-----------",channels[i]);that.iapChannel=channels[i];that.iapChannel.requestOrder(IAPOrders,function(event){console.log(event,event.length);uni.hideLoading();for(varjinevent){that.vipList.push(Object.assign(event[j],{id:event[j].productid,goodsName:event[j].title,}));that.goodInfo=that.vipList[0];console.log(that.vipList);}},函数(errormsg){console.log("获取支付通道失败:"+JSON.stringify(errormsg)+"-"+errormsg.message);uni.showToast({title:'获取会员信息失败,请稍后再试'})uni.navigateBack()uni.hideLoading();});}}},function(e){console.log("获取支付通道失败:"+e.message);});}这里注意:1.manifest.json中需要勾选应用内支付,打开自定义包进行调试。2.IAPOrders为创建的内购项目productid数组3.3。调用支付uni.requestPayment({provider:"appleiap",orderInfo:{productid:productid,},success:(result)=>{console.log("success-------------------",result);this.getIapPayChecked(result);},fail:(e)=>{uni.showToast({title:'Paymentfailed'})that.loading=false;},完成:()=>{console.log("支付结束");that.loading=false;},});注意:1.沙盒环境下回调获取时间较长,需要耐心等待2.消耗品只能购买一次。3.如果点击支付后没有反应,可以尝试卸载软件重新安装
