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

Ionic Vue集成Glassfy后iOS内购无响应问题排查

Ionic Vue中Glassfy购买无响应问题排查

问题背景

在Ionic Vue应用中使用Glassfy实现内购与订阅功能,已成功从Apple Store Connect获取商品并展示,但调用购买函数时无任何反应,也未返回错误信息。已在iPhone真机、TestFlight测试,且Xcode中已添加In-app Purchase功能权限。

相关代码

const sub = ref();

onMounted(async () => {
  initGlassfy();
});

const initGlassfy = async () => {
  try {
    await Glassfy.initialize({
      apiKey: "4ba35c9a634d44158ee6713cfffd83ce",
      watcherMode: false,
    });

    getSku();
  } catch (error) {
    console.log(error);
  }
};

const getSku = async () => {
  try {
    subOne.value = await Glassfy.skuWithId({ identifier: "30Days" });
  } catch (e) {
    console.log(e);
  }
};

const purchase = async () => {
  try {
    await Glassfy.purchaseSku({ sku: sub.value });
  } catch (error) {
    console.log(error);
  }
};

排查与解决方案

  • 变量名不匹配:代码中获取商品后赋值给subOne.value,但购买时传入的是sub.value,导致sku参数为undefined,Glassfy无法触发购买流程。将getSku中的subOne.value改为sub.value,或者购买函数中改用subOne.value。

  • 异步流程未等待:initGlassfy中调用getSku时未加await,可能导致用户触发购买时商品信息还未加载完成,sub.value仍为undefined。修改为await getSku();,确保商品信息加载完成后再允许购买操作。

  • 添加购买状态回调:Glassfy部分错误可能不会通过try/catch抛出,需添加回调监听购买状态:

    // 在Glassfy初始化成功后添加
    Glassfy.setPurchaseCallback((result) => {
      if (result.success) {
        console.log("购买成功", result.transaction);
      } else {
        console.log("购买失败/取消", result.error);
      }
    });
    
  • 验证沙盒测试账号:确保使用有效的Apple沙盒测试账号,测试前需退出设备上的个人App Store账号,避免冲突。

  • 核对SKU标识符:确认Apple Store Connect中内购商品的ID与代码中"30Days"完全一致,大小写、拼写均不能出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:55:22