3

現在、Windows 8 で作業しているアプリでアプリ内購入を実装しています。

ドキュメントを読んだ後:

  1. アプリのライセンス情報を要求する: msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.store.licenseinformation.aspx

これにより、アプリが試用版であるかどうか、およびアプリ内を使用して購入した製品のリストが表示されます。

  1. 購入を実行するには、オブジェクトを使用する必要があります:

CurrentApp: ライブ環境で。これは、アプリがストアで承認されている場合にのみ機能するため、パッケージ化してストアに提出する前に、この変更を行う必要があります。

CurrentAppSimulator: デバッグとテスト。

2.a. アプリを試用モードで実行している場合は、CurrentApp.RequestAppPurchaseAsync (true) を呼び出してアプリを購入します。

このパラメーターは、アプリのすべてのレシートとアプリ内購入を表す XML を含む文字列を取得するように要求しています。includeReceipt が false に設定されている場合、この文字列は空です。

2.b. サーバーからの購入を検証します。参照

サーバー 2.a から取得したレシートが本物であることを確認します。領収書の信頼性を確認するには、公開証明書を使用して領収書の署名を確認できます。この証明書を取得するには、次の URL を使用します: go.microsoft.com/fwlink/?LinkId=246509&cid= ここで、 は領収書の CertificateId です。

これは、CurrentAppSimulator からの実際の領収書です。

<?xml version="1.0" encoding="utf-8"?>
    <Receipt Version="1.0" ReceiptDate="2012-08-23T14:21:40Z" CertificateId="" ReceiptDeviceId="9d6b1f28-cab8-421f-8f8d-23df2dc3abbe">
    <ProductReceipt Id="d9437a12-4f91-4ef0-b0bf-527ab9da2ec9" AppId="Zolmo.JamiesRecipes_40cj6885yhw56" ProductId="JMPK_0004" PurchaseDate="2012-08-23T14:21:40Z" ProductType="Durable" />
</Receipt>

CertificateId がありません。サーバー側の検証を実装するにはどうすればよいですか? ストアにアプリがなくても、これらすべてをテストするにはどうすればよいですか?

ありがとう、ペドロ

4

1 に答える 1

3

のこの種のエンド ツー エンド テストを行うサンドボックス環境はありませんWindows Store。ただし、これはもう少し先に進むのに役立ちます。

現在CertificateId使用されているのStoreb809e47cd0110a4db043b3f73e83acd917fe1336(これは時間の経過とともに変化する可能性があるため、コードは署名済みの領収書からプログラムでこれを取得する必要があります)。

証明書のダウンロード URL は次のようになります。 https://go.microsoft.com/fwlink/?LinkId=246509&cid=b809e47cd0110a4db043b3f73e83acd917fe1336

CertificateId上記で使用する値を解析するコードと、URL上記で返された証明書を使用して署名が有効であることを検証するコードをテストできるレシートの例を次に示しURLます。

<Receipt Version="1.0" ReceiptDate="2012-08-28T22:11:33Z" CertificateId="b809e47cd0110a4db043b3f73e83acd917fe1336" ReceiptDeviceId="4e362949-acc3-fe3a-e71b-89893eb4f528">
<AppReceipt Id="8ffa256d-eca8-712a-7cf8-cbf5522df24b" AppId="55428GreenlakeApps.CurrentAppSimulatorEventTest_z7q3q7z11crfr" PurchaseDate="2012-06-04T23:07:24Z" LicenseType="Full" />
<ProductReceipt Id="2559fa9a-9f86-0525-e655-536a6c96fac6" ProductId="Product1" PurchaseDate="2012-06-04T23:07:50Z" ExpirationDate="2012-06-07T23:07:49Z" ProductType="Durable" AppId="55428GreenlakeApps.CurrentAppSimulatorEventTest_z7q3q7z11crfr" />
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        <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>npmBq7pdtq9FkfILSsHuVyD+QWiZg6J/klBKsyWhrw8=</DigestValue>
        </Reference>
    </SignedInfo>
    <SignatureValue>LKZSHmk6XjLaEHoJPFBB1GxVsFf2eilOXeyf2RvYtVvqjU4EIdOUfNM46sVifq3MyeE4N2s77iJmvdzgxmOM9tCimebiL7jsdpWakO0A9daImHESMPIrwZNham6jPCWaBUEOFT6PNy1v5MS+cdX25Wenk702L0wVQ6R8oGPlk5Im6Q62K69cvAFA3q/kiLHOyTZWHoIGw5lvFvAYI/aZhVoFQLv1FjK0Syg5nbMA19UrzwZ39jnJjcfuw/VX51uSv5Ze2x36HDXTpiw8wHoTzauGYzt9MXd4+qbiJ4AQys22AgO+cfAbDrTuH5duZ6DMeuFeEv8nu2p9PiVyBEOlZw==</SignatureValue>
</Signature>

于 2012-08-28T22:34:00.553 に答える