CurrentApp.GetAppReceiptAsync()の結果からAppReceiptIdを使用し、それをバックエンドサービスのユーザー名に関連付けて、ユーザーが実際にアプリを購入したことを確認できるようにしたいと思います。
CurrentAppの代わりにCurrentAppSimulatorを使用することになっていることはわかっていますが、CurrentAppSimulator.GetAppReceiptAsync()は常にAppReceiptIdに対して異なるランダムな値を返します。これにより、私のサービスでテストすることが困難になります。
ハードコードされた値を使用する以外に、常に同じ値を返すようにする方法はありますか?CurrentAppSimulatorをCurrentAppに置き換えてストアに送信すると、期待どおりに動作しないのではないかと心配しています。現実の世界では、AppReceiptIdは変更されませんよね?
AppReceiptIdを取得するために使用するコード:
var receiptString = await CurrentAppSimulator.GetAppReceiptAsync();
XmlDocument doc = new XmlDocument();
doc.LoadXml(receiptString);
var ReceiptNode = (from s in doc.ChildNodes
where s.NodeName == "Receipt"
select s).Single();
var AppReceiptNode = (from s in ReceiptNode.ChildNodes
where s.NodeName == "AppReceipt"
select s).Single();
var idNode = (from s in AppReceiptNode.Attributes
where s.NodeName == "Id"
select s).Single();
string id = idNode.NodeValue.ToString();
idは常にランダムなGUIDになります。