IOS应用内购买 - 在react-native中无法使用 getSubscriptions() 函数进行订阅

问题描述 投票:0回答:1

如何从 App store connect 获取订阅。我创建订阅组并在其中添加订阅。但使用 sku 无法在我的代码中获得订阅,请提供解决方案。

我进行订阅,如下图所示。

  1. 账户开通并创建订阅组。

  2. 现在,我去订阅。添加了所有详细信息并添加了productId

  1. 现在我编写了这段代码并添加了 getSubscriptions() 的代码,但它不起作用。
    const subSkus = [
        'brandingSubs3999',
        ];
    
        //   get subscription
    const handleGetSubscriptions = () => {
        try {
            if (connected) {
                console.log("subskus calling...")
                const subs = getSubscriptions({ skus: subSkus });
                
                console.log("subs", subs, "subscriptions:", subscriptions);
            }
        } catch (error) {
            console.error("error in handle get subscription:", error)
        }
    };
    
    useEffect(() => {
        handleGetSubscriptions();
    }, []);

我只做了上述事情,但它不起作用,请为我提供解决方案如何获得所有订阅?

ios react-native in-app-purchase subscription
1个回答
0
投票
  1. 通过 useIAP 挂钩中的 getSubscription 方法获取订阅 SKU 时出现问题:https://github.com/dooboolab-community/react-native-iap/issues/1601

  2. 问题是您尝试直接使用 getSubscriptions 函数,但它不是一个独立的函数。它是react-native-iap 库的一部分。从库中导入 useIAP 钩子并使用它来调用 getSubscriptions 函数。

    import React, { useEffect } from 'react';
    import { useIAP } from 'react-native-iap';
    
    const App = () => {
      const { connected, products, subscriptions, getSubscriptions } = useIAP();
    
    const subSkus = [
     'brandingSubs3999',
    ];
    
    const handleGetSubscriptions = async () => {
     try {
       if (connected) {
         console.log('subskus calling...');
         const subs = await getSubscriptions({ skus: subSkus });
         console.log('subs', subs, 'subscriptions:', subscriptions);
       }
     } catch (error) {
       console.error('error in handle get subscription:', error);
     }
    };
    
    useEffect(() => {
     handleGetSubscriptions();
    }, []);
    
    return (
       // Your app's UI goes here
     );
    };
    
    export default App;
    
© www.soinside.com 2019 - 2024. All rights reserved.