您已购买此 App 内购买项目。此项目将免费恢复。This In-App purchase has already been bought.It will be restored for free.

ios内购(iap)关于问题“您已经购买了此程序内购买(In App Purchase)项目,但尚未下载"的解决方案 近日在项目内购中遇到“您已经购买了此程序内购买(In App Purchase)项目,但尚未下载”的问题,查阅google和百度各种文章,没找到合适的解决方案,折腾一整天,终于解决,解决方案贴出来,供大家参考。也是为了验证这个方案的正确性。欢迎拍砖! 首先说说出现这个问题的原因,一般是购买成功后业务逻辑出了问题(或者是逻辑依赖网络,网络出了问题),没有成功调用finishTransaction, 阅读详情
AI摘要

本文介绍iOS应用中消耗型内购项目的沙盒测试流程。针对内购重复购买提示的问题,提供了解决方案,包括如何通过自定义恢复机制避免重复购买提示,并给出了具体的代码示例。

问题如下:


当内购产品类型为:消耗型项目


内购沙盒测试账号在支付成功后,再次购买相同 ID 的物品,会提示如下内容的弹窗。

您已购买此 App 内购买项目。此项目将免费恢复。





解决方法:要实现自己的恢复机制。

在使用[[SKPaymentQueue defaultQueue] addPayment:payment];

将支付信息添加进苹果的支付队列后,苹果会自动完成后续的购买请求,在用户购买成功或者点击取消购买的选项后回调

 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction;

方法返回响应的结果信息,在该方法内除了得到响应的支付信息编写自身的业务的代码外还要记得调用

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

方法通知苹果的支付队列该交易已经完成,否者就会已发起相同 ID 的商品购买就会有此项目将免费恢复的提示。


- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transaction{
    for(SKPaymentTransaction *tran in transaction){
        
        switch (tran.transactionState) {
            case SKPaymentTransactionStatePurchased: {
                NSLog(@"交易完成");
                [[SKPaymentQueue defaultQueue] finishTransaction:tran];
            }
                break;
            case SKPaymentTransactionStatePurchasing:
                NSLog(@"商品添加进列表");
                break;
            case SKPaymentTransactionStateRestored:
                NSLog(@"已经购买过商品");
                break;
            case SKPaymentTransactionStateFailed:{
                NSLog(@"交易失败");
                [[SKPaymentQueue defaultQueue] finishTransaction:tran];}
                break;
            default:
                break;
        }
        
    }
}


bartender 10.1破解版|bartender条码打印10.1 点击下载出处:BarTender10.1破解版 bartender10.1破解版是一款专业的条码打印软件,在行业内广受好评,通过使用bartender我们可以将标签设计这个复杂的过程变得更简便,在设计中快速调整,即刻打印,非常迅速,BarTender10.1破解版不仅支持的标签类型包括EPC Class 1 、Gen2 、ISO 18000-6b 、ISO 15693 、Tag-It 、I-CO... 阅读详情

相关推荐

树莓派安装snowboy

1、树莓派换源 参考链接:https://blog.csdn.net/qq_43556844/article/details/113615915 2、更新pip3 参考链接:https://blog.csdn.net/qq_43556844/article/details/113616214 3、存取麦克风 我们使用PortAudio作为音频输入/输出的跨平台支持。我们还使用sox作为快速实用程序来检查麦克风设置是否正确。 sudo apt-get install python-pyaudio python

qq_43556844的博客 1923

iOS开发之内购完全笔记(您已购买此 App 内购买项目。此项目将免费恢复。)

iOS开发之内购完全笔记 解决无限提示 --(您已购买此 App 内购买项目。此项目将免费恢复。)的问题 梳理内购逻辑 记录个人集成过程中遇到的问题点与大家分享

郑亚恒的专栏 5万+

linux应用程序段错误调试

一、堆、栈 在分析段错误之前,先了解一下什么是堆?什么是栈? 堆:一般由开发者分配释放,如果没有释放,程序结束时,在有的OS中可能会被自动释放,分配方式类似于链表。堆的操作方式为,队列优先,先进先出的原则。 栈:由操作系统自动分配,存放函数的参数值,局部变量。栈的操作方式为,先进后出的原则。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。  PUSH:操作在堆栈的顶部加入一个元素...

农村种地人 1111

iOS支付

1、内购流程 1、在 AppStore 中创建相应的物品,创建内购沙盒测试账号2、客户端从后台获取相应的物品 ID (当然也可以再客户端写死,但后期扩展性就受限制了)3、依据相应的物品 ID 请求商品的相关信息4、依据商品信息创建订单请求交易5、依据返回的订单状态处理交易结果6、请求后台再次验证订单状态7、依据后台返回结果处理相关逻辑 2、创建内购物品以及沙盒测试账号 已经有朋友写出

vivi_12的博客 1382

LWIP协议栈在STM32H7上的内存优化实战:如何用32KB RAM实现稳定千兆以太网通信

本文深入探讨了在STM32H7微控制器上,如何通过内存优化策略,在仅32KB的D2 SRAM中稳定运行LWIP协议栈以实现千兆以太网通信。文章详细分析了STM32H7的内存架构、LWIP的内存消耗瓶颈,并提供了从描述符表与PBUF池精确分配、链接脚本修改到MPU区域划分的一整套实战优化方案,旨在解决大数据量传输卡死等常见配置问题。

gg901的博客 603

lammps原子组速度的计算方法

在lammps摩擦、冲击、压痕等模拟过程中,涉及到某个原子组的整体移动,如果要输出这个原子组的整体移动速度,可以使用vcm()函数。下面是一个具体的使用案例,金刚石球在盒子内移动,输出移动过程中金刚石球在x方向的质心速度。vcm()是lammps自带的一个函数,返回原子组质心在设定方向的速度。其中,ID为group-ID,dim为方向,可设置x、y或者z方向。大家好,我是小马老师。

lammps_jiayou的博客 343

亲测有效解决“你已购买过此项目,现在可以免费下载,不再另外收费”提示

有时候在苹果app store下载应用,会跳出来提示“你已购买过此项目,现在可以免费下载,不再另外收费”,然后怎么按都下载不了,本人在网络上搜集了一下方法,测试成功解决问题。 原因有可能是使用了快用苹果助手或者其他下载正版补丁导致的,他们采取一种企业应用分享的方式来使你获得免费应用下载,但同时也导致你的苹果账号出现异常。现在苹果为了补救这一情况,已经封堵了这一BUG,但随之产生的就是其他

wem520的专栏 14万+

MuJoCo 入门教程(四)建模

在 MJCF 中,一个体可以包含多个关节,因此无需引入虚拟体来创建复合关节。相反,只需在同一主体中定义构成所需复合关节的所有原始关节即可。例如,可以使用两个滑块和一个铰链来模拟在平面内运动的肢体。其他 MJCF 元素可以在嵌套的主体元素所创建的树中定义,特别是关节、几何体、场地、摄像机、灯光。当一个元素被定义在一个肢体内时,它就固定在该肢体的局部坐标系上,并始终随其移动。涉及多个机构或根本不涉及机构的元素,将在运动树之外的单独部分中定义。

机器人控制与仿真应用 4162

app内购提示,您已购买此商品,但未下载

出现这样的问题,是支付没有finish造成的,一般在支付过程中断网了,下次再购买同一商品的时候就会出现这样的问题, 解决办法,在点击购买的时候判断支付队列中是否有为finish的商品,若有,则进行处理之后将其finish NSArray* transactions = [SKPaymentQueue defaultQueue].transactions; if (transacti...

weixin_30614587的博客 964

第201期 解锁科研效率新高度:Claude 科学技能插件(claude-scientific-skills)深度体验

科研AI助手Claude Scientific Skills开源工具为Claude大模型扩展科学能力,覆盖数据可视化、数学计算、学术格式处理等科研全流程需求。该插件支持LaTeX公式生成、自动化科研图表绘制、学术文档规范校正等功能,让研究人员通过自然语言指令即可完成专业任务。项目开源可定制,支持特定学科需求扩展,目前已托管于GitHub。使用门槛低,只需配置Claude API密钥即可快速启用,帮助科研人员从繁琐技术细节中解放,聚焦核心研究创新。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 1357

使用FPGA实现MIPI DSI接口

通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。通过使用FPGA,我们可以实现MIPI DSI接口,并在FPGA上生成相应的时序和电平转换电路。在本文中,我们将探讨如何使用FPGA实现MIPI DSI接口,并提供相应的源代码。根据不同的发送状态,我们设置相应的输出信号。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。请注意,这只是一个基本的示例,用于说明如何使用FPGA实现MIPI DSI接口的发送功能。

ZdqDeveloper的博客 1698

iOS IAP 测试,提示你物品已经买过了

如果在开发iOS内购的时候,你一定会遇到购买Consumable类物品的需求,比如购买游戏币就是一个很经典的使用场景。最近在测试购买这种消耗品的时候,发现遇到了一个非常奇怪的问题,当你重复购买游戏币的时候,系统提示 This In-App Purchase has already been bought. It will be resto...

weixin_34019144的博客 745

使用 MATLAB/Simulink 对一个开关磁阻电机进行建模

*开关磁阻电机(Switched Reluctance Motor, SRM)**是一种新型的无刷电机,以其简单的机械结构、宽广的调速范围和较高的效率在工业应用中得到了广泛关注。SRM的独特之处在于其定子和转子均为凸极结构,并且通过改变绕组电流的方向来实现转矩的产生和控制。本教程将详细介绍如何使用对一个开关磁阻电机进行建模,并探讨其基本控制策略,特别是针对双凸极结构的SRM。本文介绍了如何使用构建一个开关磁阻电机的双凸极结构模型,并探讨了其基本控制策略。

amy_mhd的博客 203

iOS 上 App 内购买(in-app purchase)的误消费可以退款吗?

iOS 上 App 内购买(in-app purchase)的误消费可以退款吗?修改 周二晚按照@任轶 的答案做了,把购物清单的四个订单号列在内容里,当晚收到了苹果公司自动回复,周三受到苹果公司团队中的某人的书面回复正在解决,今天受到一封正式信 “尊敬的吴淳: 感谢您联系 iTunes Store 支持团队,我是 iTunes Store 主管代表 Eddie,很乐意能够协助您。

明明 5万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

In-App Purchase Programming Guide----(七) ----Restoring Purchased Products

Restoring Purchased Products Users restore transactions to maintain access to content they’ve already purchased. For example, when they upgrade to a new phone, they don’t lose all of the items...

589

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IAP 计费被拒绝解决方案

In-App purchasing in iOS 6 2013年5月之后,由于苹果需求一次性道具要求添加按钮问题解决方案: Reject message: We found that while your app offers In-App Purchase(s) that can be restored, it does not include the required "Res

Kaitiren的专栏 7971

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

quick3.3中CCStore的使用

1.CCStore源码和导出的lua的api在哪里 你的项目根目录/frameworks/runtime-src/Classes/quick-src/extra/store/CCStore.h 你的项目根目录/src/framework/cc/sdk/Store.lua 2.首先,在当前版本中要想正常使用CCStore需要修改两个地方 a.图中标明的两处替换为cc.Store

Code_Nice的博客 1372

关于发布App时遇到的坑(二)

这两天被这个发布的事情搞得整个人都不好了,心烦意乱的。昨天提交了一天的版本。。。每一次都是 Successful,But but but ….一直不出现构建版本,刚开始以为是版本号的问题(公司领导要求版本号从V0.9开始。。。),我也确实查了一下,是有问题,Apple规定的版本初始值是从1.0.0开始,范围是1.0.0~9.9.9,于是乎欢天喜地的以为解决了。。。结果构建版本还是不出现,哭爹喊娘的心

Lyanla的专栏 655

unity3d 嵌入iOS的 In App Purchase 应用程序内购买

  链接:http://oulehui.blog.163.com/blog/static/796146982011731113214878/ Unity做东西是快,但是有些功能是需要额外开发的,比如 IAP (In App Purchase,应用程序内购买) 还好unity提供了灵活的扩展功能,允许嵌入原生代码来做一些unity未实现的功能。 这几天折腾IAP,碰到很多问题,现在终于调通了...

tank2308635的专栏 440

iOS 内付费(in-app purchase)--非消耗品的购买与恢复

iOS内付费的功能对于一个app来说是非常重要的,如果在这一环节出了一些致命的问题,那就很可能会影响app的推广和公司的利益了。我在很早之前写过一篇关于iOS内付费的文章(文章地址),在那篇博客中讲述了如何在苹果后台生成iOS内付费商品,以及在我们的app工程中如何去添加相应的内付费代码。但是,在后来的日子里面我发现网友在关于内购功能上遇到的问题比我想象的还要多,其中很大一部分都是一些很简单的问题,

shenjie12345678的专栏 3万+

关于iap内购的问题( 您已经购买了此程序内购买(In App Purchase)项目,但尚未下载)...

在刚开始做内购的时候,就听我们老大说要处理好购买中断问题,就是用户已经支付过钱但是你们的服务器没有向苹果服务器发送验证,这个要是不处理好就可能上不了线的。当时也是对这个很头疼,于是就问同学要了个教程,是himi的http://www.himigame.com/iphone-cocos2d/550.html,里面讲得很清楚,但是里面还是没有讲到对消耗品的中断处...

weixin_34335458的博客 826

ios内购——因缺少“恢复购买”功能被拒解决方案

如果我们在苹果后台创建了 “非消耗型” 的商品,苹果会要求app内必须设置 “恢复购买” 的功能。否则就会有审核被拒风险,前几天我们的app就因为这个被拒审了。 9月24日被拒,原因如下: Guideline 3.1.1-Business - Payments - In-App Purchase We found that your app offers in-app purchases th...

weixin_44076695的博客 1万+
上一篇: Setting up CocoaPods master repo 卡着不动
下一篇: ios 故事版 设定UIImageRenderingMode的方式
LibraXin
博客等级 码龄12年 11粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值