我希望能夠使用CurrentApp.GetAppReceiptAsync()的結果中的AppReceiptId並將其綁定到後端服務中的用戶名,以驗證用戶是否實際購買了該應用。使用AppReceiptId在Windows應用商店應用中驗證用戶的身份?
我知道我應該使用CurrentAppSimulator來代替CurrentApp,但是CurrentAppSimulator.GetAppReceiptAsync()總是爲AppReceiptId返回一個不同的隨機值。這使得我的服務很難測試。
有沒有辦法讓它始終返回相同的值,而不僅僅是使用硬編碼的?我擔心,當我用CurrentApp替換CurrentAppSimulator並將其提交給商店時,它不會像我期望的那樣行事。在現實世界中,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。