React-native-iap: validateReceiptIosは常にfalseを返します

作成日 2018年08月15日  ·  11コメント  ·  ソース: dooboolab/react-native-iap

react-native-iapのバージョン

2.0.0-alpha3
(私も1.1.5を試しましたが、同じ問題です)

エラーに直面したプラットフォーム(IOSまたはAndroid、あるいはその両方?)

iOS

予想される行動

validateReceiptIosは、有効なレシートに対して0/1 / trueを返します

実際の動作

validateReceiptIosは常にfalseを返します

テストされた環境(エミュレーター?実デバイス?)

実デバイス、サンドボックスアプリストア

動作を再現する手順

自動更新可能なサブスクリプションの購入を正常に行うことができ、トランザクションの領収書を受け取ることができます。 validateReceiptIos(receiptBody、true、55)を使用してiOSでこれを検証しようとすると、常にfalseが返されます。

JSON.stringify(res)をログに記録すると、次のようになります。
{"ステータス":21004、 "環境": "サンドボックス"}

#190でも同様の問題がありました

1️⃣ good first issue 📱 iOS 🙏 help wanted

最も参考になるコメント

@LinusU @dooboolab
共有シークレットをreceiveBodyに追加したところ、うまくいくようになりました。
たぶん私はドキュメントのどこかでそれを見逃しましたか? それとも、それが起こるはずの方法ではありませんか?

  const receiptBody = {
        'receipt-data': product.transactionReceipt,
        'password': '*********'
      };

(バージョン2.0.0-alpha3を引き続き使用)

全てのコメント11件

ログを挿入するのはどの行ですか? 🤔

また、どのバージョンのReact Nativeを実行していますか?

@fabianunger奇妙な。 #190で修正する必要があります。 いくつかのコードを共有できますか?

"react": "^ 16.3.2"
"react-native": "^ 0.55.3"

`` `
validate = async(product)=> {
{を試してください
console.log(product);

  const receiptBody = {
    'receipt-data': product.transactionReceipt,
  };
  console.log(receiptBody);

  const result = await RNIap.validateReceiptIos(receiptBody, true, 55);
  console.log(result);

} catch(err) {
  console.warn(err.code, err.message);
  Alert.alert(err.message);
}

};

`` `

@fabianungerこのバージョンを試して、より詳細なエラーメッセージが表示されるかどうかを確認してください。

npm install LinusU/react-native-iap#ios-validate

@LinusU @dooboolab
共有シークレットをreceiveBodyに追加したところ、うまくいくようになりました。
たぶん私はドキュメントのどこかでそれを見逃しましたか? それとも、それが起こるはずの方法ではありませんか?

  const receiptBody = {
        'receipt-data': product.transactionReceipt,
        'password': '*********'
      };

(バージョン2.0.0-alpha3を引き続き使用)

@LinusU
私はあなたのバージョンでもそれをテストしました:同じ結果。
応答として、{"status":21004、 "environment": "Sandbox"}を取得します。

共有シークレットをreceiveBody内の「パスワード」として追加することで機能します。 一般的に:これはとにかく通常の方法ですか?

@fabianungerあなたはそれを正しくやった。 詳細については、こちらを参照してください。 タフなドキュメントを更新するのは良いことです。

shared secretとは何ですか?どこにありますか?

shared secretとは何ですか?どこにありますか?

https://www.appypie.com/faqs/how-can-i-get-shared-secret-key-for-in-app-purchase

{status:21007}を返す本番モードでレシートを検証します。誰でもこれでmwを手伝ってくれますか。

前もって感謝します

ここを見て:

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

「21007:この領収書はテスト環境からのものですが、検証のために本番環境に送信されました。代わりにテスト環境に送信してください。」

テスト環境の検証にこのアドレスを使用します: https

このページは役に立ちましたか?
0 / 5 - 0 評価