GVKun编程网logo

ios – Apple应用程序内购买收据 – 在服务器端验证(appstore提供app内购买)

15

在本文中,我们将带你了解ios–Apple应用程序内购买收据–在服务器端验证在这篇文章中,我们将为您详细介绍ios–Apple应用程序内购买收据–在服务器端验证的方方面面,并解答appstore提供a

在本文中,我们将带你了解ios – Apple应用程序内购买收据 – 在服务器端验证在这篇文章中,我们将为您详细介绍ios – Apple应用程序内购买收据 – 在服务器端验证的方方面面,并解答appstore提供app内购买常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的android – 应用程序内购买服务器、cocoa-touch – iOS – 应用程序内购买和applicationDidBecomeActive、iOS App ID – 禁用应用程序内购买(无法启用)、ios – Apple是否拒绝使用Apple应用程序中使用的图像的应用程序?

本文目录一览:

ios – Apple应用程序内购买收据 – 在服务器端验证(appstore提供app内购买)

ios – Apple应用程序内购买收据 – 在服务器端验证(appstore提供app内购买)

我在服务器端验证苹果收据时遇到问题.
我试图在互联网上找到解决方案,但没有成功.

所以,描述:
首先,应用程序是针对iOS7的.其次,我有一些项目(type = Non-Renewing Subscription).因此,用户可以购买一件或多件物品,然后他应该手动更新它们(再次购买).

应用程序向服务器端发送收据,我向Apple发出请求并获得带有大量in_app收据的结果.就像是:

"in_app":[
{
"quantity":"1","product_id":"...","transaction_id":"...","original_transaction_id":"...","purchase_date":"...","purchase_date_ms":"...","purchase_date_pst":"...","original_purchase_date":"...","original_purchase_date_ms":"...","original_purchase_date_pst":"...","is_trial_period":"..."},{
"quantity":"1","is_trial_period":"..."}
]

因此,“in_app”中的每个“收据”都有transaction_id.但我如何识别当前购买的transactionId?我想验证它,并确保这是独一无二的.

我担心的是:如果有人会收到一张有效收据,他就可以破解我们的服务器端API,并使用相同的有效收据进行无限数量的应用内购买.

我应该以某种方式解密并检查transaction_id的“原始”收据,即我发送给Apple进行验证的收据?

任何帮助/建议将受到高度赞赏.
先感谢您.

问候,
马克西姆

解决方法

@Doug Smith

https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html

如果您浏览此页面上的不同字段,您会发现

Original Transaction Identifier::
For a transaction that restores a prevIoUs transaction,the transaction identifier of the original transaction. Otherwise,identical to the transaction identifier.
This value corresponds to the original transaction’s transactionIdentifier property.
All receipts in a chain of renewals for an auto-renewable subscription have the same value for this field.

因此,对于非自动续订订阅,您必须跟踪服务器端的两件事:

>您正在使用itunes服务器验证的收据的原始事务标识符,将其与数据库中的用户ID相关联.
>您从客户端收到的请求是购买还是恢复购买.

一旦你掌握了这两件事,就可以在这两个参数上写下你的逻辑,如下所示:

::如果请求的类型为“Purchase”,并且您已将该收据的原始交易标识符与其他用户ID相关联,则可以阻止该购买.

::如果请求的类型为“Restore Purchase”,并且请求来自与您的数据库中原始事务标识符关联的相同用户ID,则允许他阻止其恢复.

此外,您可以根据自己的需要,根据这些内容推导出自己的逻辑.

如果您有任何疑问,请告诉我.

android – 应用程序内购买服务器

android – 应用程序内购买服务器

我想实现一个应用内购买机制,该机制支持Google Checkout和PayPal,用于在我的某个 Android应用中购买虚拟商品.我阅读了这两种机制的参考资料,但我仍然有一个问题,即处理此类购买的正确方法是什么.
问题是,我想管理对我自己的服务器的调用,作为购买交易的一部分,并且如果调用无法取消/回滚整个交易.如果我第一次执行购买交易,并且只有在确认我打电话给我自己的服务时,如果它失败了该怎么办?如果我第一次调用我的服务而不是尝试处理事务并且它失败了我需要回滚我的调用(如果回滚失败会发生什么???)

管理它的正确方法是什么?有没有办法创建一个我缺少的多阶段交易?

解决方法

尝试使用为InApp Billing提供的Google Checkout机制而不是PayPal SDK,因为它是获取事务错误响应的最佳方式,如果从设备中删除应用程序并重新安装,则还原RESTORE TRANSACTIONS. Google在应用结算交易期间提供异步广播通知.购买类型可分为托管(每个用户帐户)和未管理.

Google在此提供信息:In App Billing Overview如下:

1.一些应用内计费实施也可以使用专用远程服务器来提供内容或验证交易,但不需要远程服务器来实现应用内计费.

2.如果您要销售需要传送到用户设备的数字内容(如媒体文件或照片),则远程服务器非常有用.

3.您还可以使用远程服务器存储用户的交易历史记录或执行各种应用内的计费安全任务,例如签名验证.

4.虽然您可以在应用程序中处理所有与安全相关的任务,但建议在远程服务器上执行这些任务,因为它有助于使您的应用程序不易受到安全攻击.

所以,最后,我想向您推荐Google InApp结算实施优于其他第三方付款流程.

cocoa-touch – iOS – 应用程序内购买和applicationDidBecomeActive

cocoa-touch – iOS – 应用程序内购买和applicationDidBecomeActive

我正在使用后台方法开发4.0应用程序.我正在使用每次启动应用时递增的数字更新用户默认值.看起来在4.0中,每次启动应用程序时都不会触发didFinishLaunchingWithOptions,只有在第一次启动时它才会启动,如果它还没有在后台运行.所以现在,我的用户默认值是在applicationDidBecomeActive方法中递增.不确定这是不是正确的地方.我使用Flurry Analytics和其他一些我想在每次“启动”应用时实例化的东西做同样的事情.

我注意到在应用内购买期间,applicationDidBecomeActive方法会触发两次.它不仅错误地增加了我的用户默认值,就像重新启动了应用程序一样,它还重新初始化了flurry以及applicationDidBecomeActive方法中的其他项目.

我究竟做错了什么?每次应用程序“启动”时,我应该使用其他方法吗?

谢谢,
豪伊

解决方法

也许您可以尝试applicationWillEnterForeground而不是使用applicationDidBecomeActive.

iOS App ID – 禁用应用程序内购买(无法启用)

iOS App ID – 禁用应用程序内购买(无法启用)

我创建了我的应用程序的测试版,并将其上传到iTunes Connect for TestFlight测试,没有任何问题.

后来,我决定实施in-app购买.我访问了带有标识符的Apple页面,发现我的应用程序已经有明确的App ID.我想编辑我的显式应用ID并启用应用内购买.

Disabled in-app purchases

当我点击“编辑”按钮时,我发现应用程序内购买复选框显示为灰色且无法编辑.

IAP cannot be enabled

默认情况下,应根据apple documentation启用应用程序内购买:

Explicit App IDs are App IDs whose Bundle Identifier portion is a string without the wildcard (“*”) character. Furthermore,they are automatically registered for in-app purchase and Game Center

知道如何启用应用程序内购买吗? (我想使用相同的包ID).

解决方法

我不确定它是否是某种错误或我真的解决了这个问题.

以下是我所做的步骤:

1.)
在功能中启用应用内购买

IAP Capabilities

2.)将新版本的应用程序上传到TestFlight测试.之后我检查了我的AppID,但仍然禁用了应用程序内购买.

3.)等等……放松,享受周末.

总结

以上是小编为你收集整理的iOS App ID – 禁用应用程序内购买(无法启用)全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

ios – Apple是否拒绝使用Apple应用程序中使用的图像的应用程序?

ios – Apple是否拒绝使用Apple应用程序中使用的图像的应用程序?

我正在制作音频播放器应用.

在Apple的音乐应用程序中,如果音乐专辑或播客没有艺术作品,则会显示音符图像或播客图标图像而不是艺术作品.

我想做同样的事情.

我可以在Apple的音乐应用中使用我的应用程序中的图像吗?
苹果会拒绝我的应用吗?

我是否必须自己创建音符和播客图标的图像?
或者是否建议将Apple的图像用于我的应用程序以获得用户体验?

我还想使用历史图标,播客图标和有声读物图标,它们用于苹果应用程序中的标签栏图标.

解决方法

重用工具栏/按钮图标很好,Apple可能会欣赏UI一致性.许多应用程序使用应用程序商店中未包含在核心集中的Apple图标.然而,使用“更大”的艺术将不受欢迎,如飞溅艺术/股票图像.

关于ios – Apple应用程序内购买收据 – 在服务器端验证appstore提供app内购买的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于android – 应用程序内购买服务器、cocoa-touch – iOS – 应用程序内购买和applicationDidBecomeActive、iOS App ID – 禁用应用程序内购买(无法启用)、ios – Apple是否拒绝使用Apple应用程序中使用的图像的应用程序?等相关知识的信息别忘了在本站进行查找喔。

本文标签: