@NightSoul

Как проверить валидность покупки совершенной в windows phone store?

Есть клиентское приложение, в котором пользователь может приобрести продукт. Есть сервер, на котором я хочу проверить, действительно ли продукт был приобретен. Из гайдов MS не совсем понятно как это сделать. Есть понимание того, на сервер нужно передать receipt. Получение receipt внутри приложения
string xml = await Store.CurrentApp.GetProductReceiptAsync(pID);

затем я отсылаю его на сервер. Rectipt имеет вид
<?xml version="1.0"?><Receipt Version="1.0" CertificateId="A656B9B1B3AA509EEA30222E6D5E7DBDA9822DCD" xmlns="http://schemas.microsoft.com/windows/2012/store/receipt">
<ProductReceipt PurchasePrice="р.0" PurchaseDate="2013-11-25T14:21:54.069Z" Id="678d1af4-f3c6-4fce-8acb-96817cb80e25" AppId="08958126-61b3-4b30-a682-8b380d9171f3" ProductId="monthsubscription" ProductType="Consumable" PublisherUserId="exKUawlE0mnZi2GIsXMG/RbWarLKP2htxIwRkmX3eQM=" PublisherDeviceId="FP7oxlZ+BIiWm5urRmBTN7WqP05maZToolIYRHf8C/E=" MicrosoftProductId="ce2e53fd-af73-4b5a-973d-53e30d3ca364" />

	<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
		<SignedInfo>
			<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
			<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
			<Reference URI="">
				<Transforms>
				<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
				</Transforms>
				<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<DigestValue>AO2nKCPdWObpmxraP0pAhmRWHPilriZeFzE94FkTohU=</DigestValue>
			</Reference>
		</SignedInfo>
		<SignatureValue>V4lIg+KOJwT5E8UT7sHt15Y6W1d9g6iQydiYFCkSN4ekgfmV8ARXR4Sx6a8njfgfoaZBvC+AKQdbei35VNt8iVQ8uIduwA4gsAfZX0zcKalMP60cdeB1hXmfiCAMNQw97g8POKOBgqqKpe3+syktYPiDI2Pab9K70bOPff23DkShS08fXGXvvftjM+yprO3HcO121iShSAC3S/e/tW3+CDEzHsmgRdLbL0Pos8fp2S4S0T5lqQzsCE3cNpqMT9o+EjiUBvZNY6xUpxvm9lEFFhXRw5W2Vaz2c1rNxLpXUBpiUK5vGn8uWuIC/uRI/1O2gL1gZhYXmqxOoUEF3PxAVA==
		</SignatureValue>
	</Signature>
</Receipt>

Как мне на основании этого receipt проверить то что покупка была действительно совершена? Нужно ли получать publick key? Что с ним дальше делать?
  • Вопрос задан
  • 2761 просмотр
Пригласить эксперта
Ответы на вопрос 1
@SZolotov
Asp.net core, MAUI,WPF,Qt, Avalonia
Немножко не так. Смотрите, сначала Вы вызываете метод
var receipt = await Store.CurrentApp.RequestProductPurchaseAsync(productInfo.ProductId, true);

Если покупка совершена, то получаете рецепт и делаете что нужно.
Т.е факт получения рецепта и есть подтверждение покупки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы