2.0.0-alpha3
(私も1.1.5を試しましたが、同じ問題です)
iOS
validateReceiptIosは、有効なレシートに対して0/1 / trueを返します
validateReceiptIosは常にfalseを返します
実デバイス、サンドボックスアプリストア
自動更新可能なサブスクリプションの購入を正常に行うことができ、トランザクションの領収書を受け取ることができます。 validateReceiptIos(receiptBody、true、55)を使用してiOSでこれを検証しようとすると、常にfalseが返されます。
JSON.stringify(res)をログに記録すると、次のようになります。
{"ステータス":21004、 "環境": "サンドボックス"}
#190でも同様の問題がありました
ログを挿入するのはどの行ですか? 🤔
また、どのバージョンの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を手伝ってくれますか。
前もって感謝します
ここを見て:
「21007:この領収書はテスト環境からのものですが、検証のために本番環境に送信されました。代わりにテスト環境に送信してください。」
テスト環境の検証にこのアドレスを使用します: https :
最も参考になるコメント
@LinusU @dooboolab
共有シークレットをreceiveBodyに追加したところ、うまくいくようになりました。
たぶん私はドキュメントのどこかでそれを見逃しましたか? それとも、それが起こるはずの方法ではありませんか?
(バージョン2.0.0-alpha3を引き続き使用)