iOS In-App Purchase中涉及到的货币单位

跨平台应用内购买编排:解决多端IAP后处理难题 应用内购买(IAP)是移动应用数字商品与订阅服务的核心变现方式,但多平台上架时,不同商店的SDK、回调格式与订阅状态管理差异巨大,尤其是收据验证与退款处理等支付后流程,常让开发团队陷入重复劳动。面对这一挑战,业界通过引入支付编排层,将各家商店的购买凭证统一转换为标准化事件,并驱动订单对账、权益发放与订阅生命周期管理。这种模式不仅适用于出海应用的多端分发,也适合Flutter、React Native等跨端框架的项目,帮助后端工程师从复杂平台差异中解放出来。本文以Orca为例,拆解IAP编排的核心流程、关键配 阅读详情

转自:http://www.molotang.com/articles/1437.html


iOS In-App Purchase中涉及到的货币单位

现在iOS的AppStore上各类应用非常丰富,有付费的也有免费的,而免费的应用也可以支持IAP (In-App Purchase,应用内支付) 。 对于应用内支付,我们有时候希望对用户的支付行为进行记录,甚至通过记录支付过程进行记账,那在这个过程中用户支付所使用的货币类型是我们需要考虑的一个问题,这里我整理一下。

做过iOS发布的朋友应该都知道,我们在iTunes Connect上发布一款应用的时候会选择发布的国家/地区。这实际上也就是说我们在不同国家地区的AppStore上,可下载安装的应用是不同的,而且这与用户的Apple ID账号有关。

所以,本文的问题主要是针对多地区发布的,如果你的应用只在中国大陆发布,而不考虑港、澳、台及其他国家和地区,应用收费只需要关注人民币就可以了。

在iTunes Connect提交IAP商品信息时,我们定的价格只需要选择对应的Price Tier,苹果的AppStore会根据特定的货币单位转换成对应的值。

在应用客户端里,商品信息通过向AppStore发起SKProductsRequest获得。每一个商品的价格等由一个SKProduct对象来维护,其中有两个重要属性:

  • price,一个NSDecimalNumber类对象
  • priceLocale,一个NSLocale对象,表示地区信息,和price的数值对应;这里面包含的东西就多了,其中包括一个货币单位

一个商品,比如设置了Tier1,那么如果他在美国AppStore发布,即用户账号是在美国AppStore登录,则得到的price是0.99,单位是USD;而如果在中国大陆,则是6,单位CNY。关于货币单位,这其中有几种办法,可以通过localeIdentifier方法来获取,也可以通过key-value的方式获取到。

如果需要在付款时给用户提示,显示的字符串可以这样拼凑:

NSNumberFormatter *numberFormatter = [[ NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior: NSNumberFormatterBehavior10_4 ];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle ];
[numberFormatter setLocale:product.priceLocale];
NSString *formattedPrice = [numberFormatter stringFromNumber:product.price];

这也是苹果官方文档给出的示例代码。其中主要是使用了NSNumberFormatter类,behavior是和操作系统版本有关的参数,style则是显示NSDecimalNumber时的格式,除了CurrencyStyle这个常量还有百分号、科学计数法等风格,读者可以自己尝试,locale则决定了CurrencyStyle下的货币单位符号,而且仅仅是符号。注意一点,NSNumberFormatter不会根据单位和汇率给你做货币数值转换的工作,如果需要转成统一货币,那要自己根据实时汇率做转换计算喽。

除了货币单位,每个商品可以在iTunesConnect上配置本地化/国际化的名称和描述信息,这里就不多说了。

有关货币单位,可以参看苹果的支付协议文档或App Store Pricing Matrix,也可以参看ISO 4217上的内容:

ISO4217(维基百科)

非统计学路径的数据科学实战:清洗、建模与可视化一站式入门 数据科学不是统计学的子集,而是面向真实业务场景的数据工程实践。它以数据清洗为起点,通过Python+SQL+Power BI等高渗透率工具链,将杂乱原始数据(如Excel乱码、嵌套JSON、PDF表格)转化为可驱动决策的结构化指标;核心在于业务导向建模——用可解释的规则引擎替代黑箱模型,以阈值判断、归因路径和参数化看板实现技术与业务对齐;低门槛可视化则强调趋势对比、分布热力与瀑布归因三类高价值图表,让分析结果直通管理层。本文聚焦数据清洗工程与业务导向建模两大关键能力,提供开箱即用的代码模板与企业级实操范式。 阅读详情

相关推荐

数据清洗实战:从脏数据到可信特征的四阶段工程化方法

数据清洗是机器学习 pipeline 中承上启下的核心环节,其本质不是简单删除缺失值或异常点,而是建立结构、业务与统计三层数据契约,确保原始数据可读、可信、可用。其原理在于分阶段阻断污染传播——解析层强制类型对齐,校验层嵌入业务规则,修复层语义化填充,归一化层为特征工程铺路。技术价值体现在提升模型鲁棒性、降低bad case率、支撑线上服务稳定性;典型应用场景覆盖电商用户行为日志、金融交易流水、IoT设备上报等高噪声真实数据源。本文聚焦 Effective Data Cleaning 与清洗四阶段流水线两大

weixin_33907511的博客 303

iOS 内购中的本地化测试. How to test 'priceLocale'?

在啃了不少文档之后, 内购的东西终于理顺了, 也理清楚了, 可以搞UI了, 因为app不仅在国内用, 还要在国外用, 所以根据国家不同显示不同的货币符号和对应的价格就很有必要了(例如 $0.99, ¥666). SKProductsRequest中始终返回的是中文, 包括localizedTitle,localizedDescription等都是, 修改系统语言, 修改系统区域, noth...

qq_15906567的博客 2486

数据科学是马拉松:五大维度配速策略与工程化成长路径

数据科学不是孤立的编程或建模技能,而是一门融合统计推断、软件工程、业务语义理解与系统思维的复合型实践。其核心原理在于知识价值高度依赖‘连接点’——即技术概念如何映射到工程约束与真实业务目标。这种非线性学习特性导致长周期反馈延迟和显著的边际效益拐点,使单纯刷题或碎片化学习极易失效。技术深度必须与工程鲁棒性、业务翻译能力同步演进,否则将陷入‘模型准确率高但无人使用’的落地困境。本文聚焦数据科学学习中的关键瓶颈:Docker环境不可复现、SQL无法被业务方直接复用、特征工程缺乏业务可解释性等典型问题,提供分阶段配

weixin_33709609的博客 464

Cocos2d-x使用iOS游戏内付费IAP(C++篇)

设备与账号 在开始编码之前我们需要准备测试环境。 IAP只能真机测试,准备一台iOS设备是必须的。真机调试与IAP沙盒(SandBox)测试需要IDP(IOS Developer Program)账号。MAC开发机一台. 本文不涉及IDP申请流程和真机调试设置,重点解析IAP相关的设置。 新建IAP付费条目 新建app ID 登录iOS Dev Center,

u011240067的专栏 1504

iOS小技能:金额格式处理 (货币符号本地化)

通过设置 NSNumberFormatter 的 numberStyle 和 positiveFormat 属性 - (NSString *)formatDecimalNumber:(NSString *)string { if (!string || string.length == 0) { return string; } NSNumber *number = @([strin...

专注于计算机研发知识和资讯分享 1万+

iOS本地化货币符号显示不正确(显示为XXX)的解决

在App切换本地语言时,其IAP中的产品价格里的货币符号显示不正确. 如上图所示,除了最右边英语的货币符号正确外,其他所有的都不对。 实际上,App中除了英语以外,包括中文,日文,韩文,德文等在内的多种语言货币符号都不正确,它们大多都显示为"XXX"。 那么,这是什么原因造成的又如何解决呢? 别急,下面就让我们 Let's GO!;)

享受开发,颠倒银河 2233

ios支付 选择货币_iOS In-App Purchase中涉及到的货币单位

iOS In-App Purchase中涉及到的货币单位现在iOS的AppStore上各类应用非常丰富,有付费的也有免费的,而免费的应用也可以支持IAP (In-App Purchase,应用内支付) 。对于应用内支付,我们有时候希望对用户的支付行为进行记录,甚至通过记录支付过程进行记账,那在这个过程中用户支付所使用的货币类型是我们需要考虑的一个问题,这里我整理一下。做过iOS发布的朋友应该都知...

weixin_39894233的博客 1557

移动游戏IAP数据集:架构解析与商业智能实战指南

应用内购买是移动游戏商业化的核心,其背后是一套复杂的用户行为与交易数据体系。理解IAP数据的原理,关键在于掌握其多维数据结构,通常涵盖用户画像、行为事件、交易流水和商品信息等关联表。这套数据体系的技术价值在于,它能支撑从基础指标计算到高级预测模型的全链路分析,是进行收入预测、用户分群和定价策略优化的基石。在实际应用场景中,数据分析师和算法工程师可以基于此类数据,通过SQL查询与Python可视化分析商品表现,或利用机器学习模型预测用户付费倾向,从而驱动精准运营。本文以一份面向未来的模拟数据集为例,深入探讨了

weixin_34075268的博客 588

asc-devkit Matmul 输出随路反量化直调样例:Int8 矩阵乘的标量与向量双模反量化实现

本文以 asc-devkit 仓库中 [matmul_quant 样例](https://link.gitcode.com/i/17e238078b13e3e14f3024ebf9a8fca3) 为核心,完整讲解“Matmul 输出随路反量化”直调场景的实现与实战流程。读完本文后,你将掌握:如何用 Ascend C 的 `Matmul` API 完成 int8_t 输入、half 输出的量化矩阵乘

gitblog_09802的博客 458

苹果内购(iap)价格表-人民币.pdf

苹果内购价格表中的实际收入是一个动态变化的的,会根据税收变化而发生改变,一般苹果会收取30%左右的金额。但是表格里边的价格和等级一般是不变的。

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库)

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库) 日志记录 默认情况下,所有 Sysrepo 日志记录都处于关闭状态。如果启用,日志消息有 3 种输出。它们可以写入stderr、由 处理syslog或简单地传递给回调。 请务必注意,启用 Sysrepo 日志记录也会修改libyang日志记录设置。错误消息被视为标准 Sysrepo 错误,其他严重性较低的消息完全隐藏。要更改此行为,只需在启用 Sysrepo 日志记录后调整libyang日志记录设置。 此外,几乎每个 Sysrepo

weixin_43489394的博客 9225

Flutter 应用内购平台接口 in_app_purchase_platform_interface:接口设计、扩展机制与平台适配实战

`in_app_purchase_platform_interface` 是 Flutter 官方团队维护的 `in_app_purchase` 插件所依赖的**通用平台接口(platform interface)**,它定义了应用内购(IAP)领域层与各平台实现(Android / iOS / macOS 等)之间必须遵守的契约,保证插件自身与所有平台实现支持同一套 API。本文以该包仓库内的

gitblog_00460的博客 335

Windows10系统添加虚拟网卡(Microsoft Loopback Adapter)的方法

1、按下win + R键,在其中输入:hdwwiz,然后 (enter) 2、点击下一步即可 3、其次选择【网络适配器】,然后点击【下一步】。 4、在厂商处选择Microsoft,网络适配器处选择【Microsoft Loopback Adapter】选项 ,点击【下一步】。 5、通过上面几个步骤的设置后,一块虚拟网卡的安装设置就算是完成了。 ...

一个懒鬼的博客 2万+

InAppBillingPlugin 国际化支持:多货币和多语言支付界面实现指南

InAppBillingPlugin 是一个功能强大的跨平台应用内购买插件,为 .NET MAUI 和 Windows 应用提供完整的国际化支付解决方案。这个插件支持多货币和多语言界面,让开发者能够轻松为全球用户提供本地化的应用内购买体验。无论是iOS、Android还是Windows平台,InAppBillingPlugin都能自动处理货币转换和本地化显示,简化了国际化支付的复杂性。 ## ?

gitblog_07880的博客 409

保姆级教程:在S32K312上配置C40驱动,实现Flash读写(基于RTD 4.4.2)

本文详细介绍了在S32K312微控制器上配置C40驱动实现Flash读写的全流程,基于RTD 4.4.2库。内容涵盖环境搭建、外设配置、Flash操作实战代码及高级应用场景,特别针对LLD驱动和FLS存储操作中的常见问题提供了解决方案,帮助开发者快速掌握嵌入式Flash存储技术。

weixin_28684757的博客 253

信号完整性SI-PI

SI设计的主要难点在于需要综合信号的幅度、噪声、边沿、延时等影响信号质量的多种因素,并且这种因素常常相互依赖、互相影响,交叉在一起。1.1、信号过冲 (欠阻尼状态,可并联一个合适的电容):过冲会造成强烈的电磁干扰,另一方面会损伤后面的电路的输入及,甚至失效。信号完整性SI:是指电路系统中信号的质量,如果在要求的时间内,信号能不失真的从源端传输到接收端。优点:提供较慢的上升时间,减少反系量,产生更小的EMI,从而降低过冲,增加信号质量。导线之间的间距过小, 就会产生串扰,间距越小、串扰越大。

weixin_42304393的博客 4867

【愚公系列】《移动端AI应用开发》042-DeepSeek与第三方服务的集成(第三方支付与交易系统集成)

文章摘要: 本文探讨了移动端AI应用与第三方支付系统的集成,重点介绍了PayPal、支付宝(AliPay)和微信支付(WeChat Pay)的对接流程。通过代码示例展示了支付请求创建、订单状态跟踪及回调处理的核心步骤,涵盖Node.js SDK配置、支付订单生成和结果捕获。此外,简要提及跨境支付涉及的货币转换问题,强调支付网关在提升用户体验和安全性中的作用。开发者可通过本文快速掌握主流支付平台的集成方法,为AI应用扩展商业化功能提供实践指导。

愚公智库 6120

PLUS模型土地利用变化模拟使用简介

因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。

qq_42831270的博客 5805

Orca:跨平台应用内购买编排层实战指南

在移动应用开发中,应用内购买(IAP)与订阅管理是跨平台产品必须面对的复杂环节。App Store与Google Play的回调机制、验签逻辑、订阅状态同步及退款处理存在显著差异,导致后端服务需要适配两套规则。通过引入统一的支付回调编排层,将渠道差异收敛为标准化事件模型,并借助异步任务队列与幂等机制保障订单状态一致性,可显著降低业务侧集成成本。此类方案尤其适用于会员订阅、虚拟商品交易及多端付费墙场景。开源项目Orca正是这样一套跨平台内购编排层,其核心能力、部署流程、测试用例与工程化实践可为团队快速落地IA

weixin_34037515的博客 333

NXOpenC#-通用NX对象操作Tag,Handle,TaggedObject介绍

NXOpenC#-通用NX对象操作Tag,Handle,TaggedObject介绍

阿飞2018 1183

手把手教你学Simulink——基于Simulink的前馈解耦SVPWM整流器仿真

本文详细介绍了基于Simulink的前馈解耦SVPWM整流器仿真方法。针对三相PWM整流器存在的dq轴交叉耦合问题,提出前馈解耦控制方案,通过在电流环中引入耦合电压补偿项,显著提升系统性能。文章包含完整的系统架构、核心算法、Simulink建模步骤及参数设置,仿真结果显示:电流跟踪误差<2%、动态响应时间<0.05s、THD<3%、功率因数>0.999。同时提供了可直接复用的MATLAB代码和工程优化建议,为电力电子工程师实现高精度AC/DC转换提供了实用解决方案。

MHD0815的博客 107

用 Winglang 在 AWS VPC 中构建私有 API Gateway:完整实战指南

本文基于 Wing 语言官方指南 [docs/docs/08-guides/04-private-api-gateway-aws.md](https://link.gitcode.com/i/cf924d96a29507b3d92276682970d926),完整演示如何用 Winglang 在 AWS Virtual Private Cloud(VPC)内构建**只允许 VPC 内部访问的私有

gitblog_00426的博客 214

从零开始学习PX4源码0(固件下载及编译)

本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!!下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有一定的差异(开发环境及源码文件格式等),我们是从之前版本开始学习,为什么不从最新的?因为之前版本代码文件格式还是固定的,最新的变化很大,不利于初学者学习,apm和px4不好的地方就是之前版本v1.7.2和最新版本v1.14.0有些文件总是在变化,这样很不好。

陌城烟雨 4615

机器学习Prior阶段:数据可视化驱动的建模前认知革命

在机器学习流程中,'Prior阶段'指模型训练前对原始数据的系统性认知与诊断过程,其核心是借助Python可视化工具(如seaborn、matplotlib、plotly)实现数据完整性、分布形态、变量关系与业务逻辑的深度对齐。该阶段并非简单绘图,而是以图形为媒介完成缺失模式识别、分布异常探测、非线性关系发现及数据漂移预警等关键任务,本质是将统计描述升维为可解释的业务洞察。技术价值在于规避‘垃圾进、垃圾出’陷阱,显著提升特征工程合理性与模型线上稳定性;典型应用场景覆盖金融风控中的风险拐点识别、电商用户流失预

weixin_30268921的博客 818

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: iOS7 bringSubviewToFront 和frame问题
下一篇: 手把手教你做iOS推送
StudyRecord
博客等级 码龄16年 96粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值