You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS内购:获取正确Transaction Id进行服务器验证失败排查

Flutter iOS内购验证故障排查

问题概述

我正在Flutter中开发iOS内购功能,需要将唯一交易ID发送到服务器完成验证。目前使用npm的app-store-server-api包实现服务器端逻辑,也参考过相关代码示例,但始终无法完成交易验证,服务器返回错误码4000006。

核心疑问

  • 正确的交易ID(transaction id)是什么?应该从哪里获取?
  • 错误码4000006的具体含义是什么?如何解决?
  • 使用App Connect测试账号时出现认证错误,是否遗漏了必要设置?

已尝试的操作

获取交易ID的Flutter代码

purchaseID = purchaseDetails.purchaseID;
if (purchaseDetails is AppStorePurchaseDetails) {
  final originalTransaction =
      purchaseDetails.skPaymentTransaction.originalTransaction;
  if (originalTransaction != null) {
    purchaseID = originalTransaction.transactionIdentifier;
  }
}

服务器端API初始化代码

import { AppStoreServerAPI, Environment } from "app-store-server-api"
import { IOS_PACKAGE_NAME } from "../controller/shared";
export const iosApi = new AppStoreServerAPI(
   KEY, KEY_ID, ISSUER_ID, APP_BUNDLE_ID, Environment.Sandbox
)

测试中的异常现象

  • 模拟器登录App Connect测试账号完成支付后,控制台输出错误:
return (<SKPaymentQueue: 0x6000004e9650>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x60000091ab20 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 "发生未知错误,请重试。" UserInfo={NSLocalizedDescription=发生未知错误,请重试。"},
"Error Domain=com.apple.accounts Code=4 "没有验证com.apple.account.iTunesStore.sandbox类型账户凭证的认证插件" UserInfo={NSLocalizedDescription=没有验证com.apple.account.iTunesStore.sandbox类型账户凭证的认证插件"}
), NSLocalizedDescription=Authentication Failed, NSLocalizedFailureReason=The authentication failed.}}, storefront-country-code=USA, client-environment-type=Sandbox, AMSServerErrorCode=0, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}
)
  • 设备和Xcode的StoreKit Override中可完成支付流程,但返回的transactionIds为1或0;真机上获取到类似2000000369143999的交易ID,但服务器始终判定无效。

文档参考提示

查阅App Store Server通知文档时看到以下说明:

如果调用成功,说明原始交易ID属于沙箱环境;如果调用返回相同错误码,则该原始交易ID在任一环境中都不存在。

但我遇到的正是错误码4000006,没有更多上下文信息,无法定位问题根源。


内容的提问来源于stack exchange,提问作者user11756851

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:22:59