当前位置: 首页 > 知识库问答 >
问题:

ios - uniapp 苹果内购买订阅产品成功 再取消后为什么无法复购?

潘秦斩
2024-01-29

问题描述:uniapp内部使用苹果内购(IAP),购买消耗类产品可以成功拉起支付并支付成功。支付订阅产品的时候首次可以支付成功,但是在App Store中手动取消产品订阅,再回到app内中复购则无法成功拉起支付,使怎么回事呢?

支付环境:沙盒环境

共有2个答案

邹博裕
2024-01-29

uni-app 中关于这部分是有解释的:

注意事项

  • 相同订单,重复调用 restoreCompletedTransactionstransactionReceipt 会发生变化,并非唯一值
  • 调用 finishTransaction 关闭订单可能不会立即生效,取决于苹果的服务器
  • 沙盒环境:一个测试账号相同产品仅能购买一次,重复测试需要清除购买记录或重新添加沙盒测试账号
  • 沙盒环境:调用 restoreCompletedTransactions 长时间无反应,检查设备登陆的沙箱账号是否正常

#注意事项 - uni.requestPayment(OBJECT) | uni-app官网

孙志
2024-01-29
该问题可能是由于多种原因导致的,以下是一些可能的解决方案:1. **检查沙盒环境设置**:确保您在沙盒环境中正确设置了您的应用程序。沙盒环境是用于测试应用程序的隔离环境,如果您在沙盒环境中遇到问题,尝试切换到生产环境看看问题是否仍然存在。2. **检查苹果内购配置**:确保您在苹果开发者后台正确配置了您的内购产品。特别注意检查您的订阅产品是否已经正确地设置为“可以续订”,并且没有设置其他限制条件。3. **检查支付回调处理**:当用户取消订阅或支付失败时,您需要处理相应的回调。确保您的应用程序能够正确处理这些情况,并且不会影响用户再次尝试订阅或支付。4. **检查用户账户状态**:确保您的应用程序能够正确检查用户的账户状态,并且只有在用户账户有效的情况下才尝试拉起支付。如果用户账户无效,您需要引导用户进行账户验证。5. **更新应用程序版本**:有时候问题可能是由于应用程序版本过旧导致的。尝试更新您的应用程序到最新版本,看看问题是否得到解决。如果以上解决方案都不能解决您的问题,建议您联系苹果开发者支持寻求帮助。他们可以提供更详细的调试信息和解决方案。
 类似资料:
  • 根据这个线程,conCatMap和flatmap只在项目的发出顺序上有所不同。所以我做了一个测试,创建了一个简单的整数流,并想看看它们将以什么顺序发出。我做了一个小的可观测值,它可以接收1-5之间的数字,然后乘以2。容易的 这是带有平面图的代码: 和使用concatMap的完全相同的代码: 当我在日志中看到打印出来的时候,两者的顺序都是一样的,为什么?我以为只有concatMap才能维持秩序?

  • 我正在开发一个应用内购买。我已将该应用程序放在 Play 商店进行封闭测试。在帐户设置中使用测试人员电子邮件和添加的测试人员电子邮件。我在 Play 商店中有 2 个托管产品。我在调试模式下测试了 android.test.purchased 并且工作正常。但是在我购买 SKU 时从 Play 商店安装的发布版本中,它成功完成了购买,但由于某种原因我收到了失败响应。我试图弄清楚这一点。此外,我在购

  • 我试图回到IabHelper。OnIabPurchaseFinishedListener当购买结束时,我的订阅,但问题是它没有调用购买完成。 我已经尝试了onactive结果,但仍然不能在这里工作是我的代码块,我正在扩展下面的片段 我提到了这个链接

  • 我是新的数据流和发布子工具在GCP。 需要将prem过程中的电流迁移到GCP。 当前流程如下: 我们有两种类型的数据馈送 Full Feed–其adhoc作业–完整XML的大小约为100GB(单个XML–非常复杂的一个–完整的数据–ETL作业处理此XML并将其加载到约60个表中) 单独的ETL作业用于处理完整提要。ETL作业过程完全馈送并创建负载就绪文件,所有表将被截断并重新加载 源系统每30分钟

  • 我通读了RxJS文档,并希望确保我理解了< code > subscriber . unsubscribe()和< code > subscriber . complete()之间的区别。 假设我有一个有两个订阅者的可观察对象,订阅者1和订阅者2。如果订阅者1对其订阅调用取消订阅,它将不再接收来自可观察对象的通知,但订阅者2将继续接收它们。 <代码>的文档。complete(): 观察者回调,用于