module Rhymba::Endpoint::Purchases

Constants

PURCHASES_REPORT_ENDPOINT
PURCHASES_VERIFY_ENDPOINT

Public Instance Methods

GetInvalidItems() click to toggle source

This GetInvalidItems method in the Purchases API validates a list of content against your system/application’s whitelist rules, the content’s delivery rules & current status, and confirms that the information you’re going to pass to us is all up to snuff.

@option options [Object] :access_hint

Required. The access_hint value returned from the creation of the request token.

@option options [Object] :access_req

Required. The access_req value returned from the creation of the request token.

@option options [Object] :access_token

Required. The access_token value returned from the creation of the request token, not your regular access token.

@option options [Object] $format

Required. Specify the format to return the data in. If this is missing or blank, 'atom' will be used. json

@option options [string] :countryCode

Required. 2-letter country where the download will take place US

@option options [string] :purchasedItems

Required. array of the content you're attempting to validate as well as the purchase details
# File lib/rhymba/endpoint/purchases.rb, line 12
      
purchases_report(options={}) click to toggle source

This ReportPurchase method to report purchases Method: ReportPurchase - used in auth token

@option options [Object] :access_hint

Required. The access_hint value returned from the creation of the request token.

@option options [Object] :access_req

Required. The access_req value returned from the creation of the request token.

@option options [Object] :access_token

Required. The access_token value returned from the creation of the request token, not your regular access token.

@see documentation.vlgroup.com/purchases/reporting

# File lib/rhymba/endpoint/purchases.rb, line 139
def purchases_report(options={})
  options[:attachments] = options[:attachments].to_json if Hash === options[:attachments]
  options = options.merge(access_token: options[:access_token]) 
  self.endpoint = "#{PURCHASES_REPORT_ENDPOINT}"
  post("ReportPurchase", options)
end
purchases_report_finalize(options={}) click to toggle source

This ReportPurchase method to report purchases Method: ReportPurchase - used in auth token

@option options [Object] :access_hint

Required. The access_hint value returned from the creation of the request token.

@option options [Object] :access_req

Required. The access_req value returned from the creation of the request token.

@option options [Object] :access_token

Required. The access_token value returned from the creation of the request token, not your regular access token.

@see documentation.vlgroup.com/purchases/reporting

# File lib/rhymba/endpoint/purchases.rb, line 160
def purchases_report_finalize(options={})
  options[:attachments] = options[:attachments].to_json if Hash === options[:attachments]
  options = options.merge(access_token: options[:access_token]) 
  self.endpoint = "#{PURCHASES_REPORT_ENDPOINT}"
  post("FinalizePurchase", options)
end
purchases_verify(options={}) click to toggle source

POST DATA: purchasedItems Collection

As a part of your POST, you should pass an array of the content you're attempting to validate as well as the purchase details. It's in the following JSON structure:

[

{
   "contenttype": 1,
   "productid": 2307961,
   "retail": 9.99,
   "tax": 0,
   "discountamount": 0,
   "saletype": 0,
   "deliverytype": 2,
   "promotiondescription": null,
   "servicetype": 0,
   "quantity": 1
},
{
   "contenttype": 0,
   "productid": 2307959,
   "retail": 0.99,
   "tax": 0,
   "discountamount": 0.10,
   "saletype": 0,
   "deliverytype": 2,
   "promotiondescription": "Winter Sale",
   "servicetype": 0,
   "quantity": 1
},
etc...

]

fields for entries in the purchasedItems collection.

@option options [Integer] :contenttype

The type of this content item being purchased:
   0. Media / track
   1. Album

@option options [Integer] :productid

VL Group's content ID, either a media ID or album ID, for this track or album; it can be found as the "id" field in an Album or Media object returned from the Search API.

@option options [Decimal] :retail

The price of sale for this specific item, excluding any taxes.

@option options [Decimal] :tax

Amount of taxes to be charged to the end user for this single item.

@option options [Decimal] :discountamount

What, if any, discount the user received vs. our suggested retail price. If this is non-zero, you must provide a promotiondescription.

@option options [Integer] :saletype

The type of the sale; this will be 0 for all digital download sales, which is the most common, but other values include:
  0. Digital Download
  1. Playlist
  2. Ringtone
  3. Promotional giveaway (differs from a free digital download!)
  4. Non-compulsory stream
  5. Compulsory license-based stream

@option options [Int] :deliverytype

How the content is to be/was delivered. Most implementations will use 2, but the options are:
  0. Mobile
  1. Kiosk
  2. Web
  3. Stream (non-web)

@option options [Int] :promotiondescription

If discountamount is not 0.00, a textual description of why the content was discounted, such as a discount code used. Otherwise, this should be null.

@option options [Int] :servicetype

The store/service sale type. Almost all implementations are 0, Pay Per Use.
   0. Pay Per Use (PPU)
   1. Subscription

@option options [Int] :quantity

Quantity of this single item sold. Usually 1

@see documentation.vlgroup.com/purchases/verifying

JSON INVLIAD return: {

"odata.metadata": "https://purchases.mcnemanager.com/Purchases.svc/$metadata#Collection(PurchaseDataProvider.ItemCheck)",
"value":
[
   {
      "id":2307961,
      "saletype": "digitaldownload",
      "contenttype": "album",
      "allowed": false,
      "message": "Album not allowed for sale type in region"
   }
]

}

JSON VALID return: {

"odata.metadata": "https://purchases.mcnemanager.com/Purchases.svc/$metadata#Collection(PurchaseDataProvider.ItemCheck)",
"value":[]

}

# File lib/rhymba/endpoint/purchases.rb, line 119
def purchases_verify(options={})
  options[:attachments] = options[:attachments].to_json if Hash === options[:attachments]
  options = options.merge(access_token: options[:access_token]) 
  self.endpoint = "#{PURCHASES_VERIFY_ENDPOINT}"
  post("GetInvalidItems", options)
end