calibr/ms-receipt-validator

There is no license information available for the latest version (1.2.1) of this package.

Microsoft Store Receipt Validator

1.2.1 2016-12-20 13:46 UTC

This package is not auto-updated.

Last update: 2024-04-27 17:37:05 UTC


README

This library was created to easily validate Microsoft Store purchase receipts on the server side.

Installation

composer require calibr/ms-receipt-validator

Usage

Assume that client passes receipt to the server side and we receive it in the variable $_POST["receiptXML"], validation of the receipt will look like:

<?php

use Calibr\MSReceiptValidator\Validator;

$validator = new Validator();
// validation(omit exception handling)
$receipt = $validator->load($_POST["receiptXML"]);

// if we are here receipt has been successfully validated and we have all receipt data in the $receipt variable

Validator#load method

Validation is run by calling load method on the Validator class instance. This method takes only one argument - receipt XML string and returns Receipt.

Validator#setPublicKey method

If you want to set public key directly you need to pass the public key string to this method.

Receipt object format

Field
date
deviceId
productReceipt
appReceipt
publicKey
xmlDoc (DOMDocument created from XML string)

Product receipt object format

Field
id
appId
productId
purchaseDate
productType
purchasePrice
expirationDate

App receipt object format

Field
id
appId
purchaseDate
licenseType

Error handling

Validator#load method throws an exception if an error occurs. Possible exceptions:

  • Calibr\MSReceiptValidator\FailFetchPublicKeyException - Microsoft server didn't respond or respond with an error, see details in the exception message
  • Calibr\MSReceiptValidator\MalformedReceiptException - Receipt is invalid, see details in the exception message
  • Calibr\MSReceiptValidator\ValidationFailedException - Receipt didn't pass signature verification process