Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React Native:如何仅获取Apple收据并通过API调用传递它_Reactjs_React Native_In App Purchase_React Native Ios - Fatal编程技术网

Reactjs React Native:如何仅获取Apple收据并通过API调用传递它

Reactjs React Native:如何仅获取Apple收据并通过API调用传递它,reactjs,react-native,in-app-purchase,react-native-ios,Reactjs,React Native,In App Purchase,React Native Ios,我对仅仅从承诺中获取苹果收据有意见 这是通常的回答: 承诺{U 40:0,{U 65:0,{U 55:null,{U 72:null} _55:null包含收据,而null实际上是收据,因为主体太大,无法读取 我还在API调用中使用Ignite Andross样板文件。他们在用辣椒酱 我正在使用dooboolab的react native iap。 我尝试过这些选择 getLatestReceipt=async()=>{ var recentReceipt=await RNIap.request

我对仅仅从承诺中获取苹果收据有意见

这是通常的回答: 承诺{U 40:0,{U 65:0,{U 55:null,{U 72:null} _55:null包含收据,而null实际上是收据,因为主体太大,无法读取

我还在API调用中使用Ignite Andross样板文件。他们在用辣椒酱

我正在使用dooboolab的react native iap。 我尝试过这些选择

getLatestReceipt=async()=>{
var recentReceipt=await RNIap.requestReceiptIOS();
this.setState({latestReceipt:recentReceipt});
//Alert.Alert(this.state.latestReceipt);
console.log(this.state.latestReceipt);
};
这会在控制台中打印出正确的当前收据

但是,当我尝试传递当前收据时,该字段要么被读取为未定义、null,要么被读取为承诺{{u 40:0、{u 65:0、{u 55:null、{u 72:null}

var数据={
苹果请求:[
{
认购编号:“A-S00000001”,
//苹果收据
收据id:this.state.latestReceipt
}
]
};
我尝试的另一个解决方案是JSON.parse(latestReceipt)[“_55”] 然而,结果返回为0-M、1-I、2-I、3-M、4-B。。。 它吐出了每个单独的收据索引,而我需要的是_55的整个值

最后,唯一有效的选择是在Receipt_id字段中硬编码整个苹果收据。我正在寻找一种方法来避免这种情况

预期产量


receipt\u id:无论读取什么apple receipt,这个问题的解决方案是API调用和包含JSON主体的and函数都需要是异步调用。 包装:

async function getReceipt() {
    const latestReceipt = await RNIap.requestReceiptIOS();
    api.post(
      url,
      {
        apple_request: [
          {
            subscription: ${subscription_number},
            // Apple Receipt
            receipt_data: latestReceipt
          }
        ]
      },
      {
        headers: {
          "API-Token": ${api_token}
        }
      }
    );
  }
Api异步/等待调用:

 const receiptCall = async () => await getReceipt(); 

这个问题的解决方案是,API调用和包含JSON主体的函数都需要是异步调用。 包装:

async function getReceipt() {
    const latestReceipt = await RNIap.requestReceiptIOS();
    api.post(
      url,
      {
        apple_request: [
          {
            subscription: ${subscription_number},
            // Apple Receipt
            receipt_data: latestReceipt
          }
        ]
      },
      {
        headers: {
          "API-Token": ${api_token}
        }
      }
    );
  }
Api异步/等待调用:

 const receiptCall = async () => await getReceipt(); 

听起来您正在使用
fetch
并需要
等待响应。json()
first看起来我正在尝试改变一个不变的承诺。是否可以将异步承诺更改为同步?承诺{u 40:0,{u 65:0,{u 55:null,{u 72:null}{u 40:0}:“Miimcayjkozihvcnaqccoil+tccjfucqfucqexczajbgurdgmgg”{u 65:1\u 72:null}听起来像是在使用
fetch
并需要
等待响应。json()
首先看起来像是我在试图改变一个不变的承诺。是否可以将异步承诺更改为同步?承诺{u 40:0,{u 65:0,{u 55:null,{u 72:null}{u 40:0}