Skip to content

Instantly share code, notes, and snippets.

@TimLang
Forked from sauloarruda/receipt
Created July 31, 2018 08:08
Show Gist options
  • Select an option

  • Save TimLang/63b001fefa2942ca9efbca0aa41df538 to your computer and use it in GitHub Desktop.

Select an option

Save TimLang/63b001fefa2942ca9efbca0aa41df538 to your computer and use it in GitHub Desktop.

Revisions

  1. @sauloarruda sauloarruda revised this gist May 3, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions result.json
    Original file line number Diff line number Diff line change
    @@ -5,13 +5,13 @@
    "original_purchase_date_ms": "1335798355868",
    "transaction_id": "1000000046178817",
    "quantity": "1",
    "product_id": "com.mindmobapp.download",
    "product_id": "br.com.jera.Example",
    "bvrs": "20120427",
    "purchase_date_ms": "1335798355868",
    "purchase_date": "2012-04-30 15:05:55 Etc/GMT",
    "original_purchase_date": "2012-04-30 15:05:55 Etc/GMT",
    "purchase_date_pst": "2012-04-30 08:05:55 America/Los_Angeles",
    "bid": "com.mindmobapp.MindMob",
    "bid": "br.com.jera.Example",
    "item_id": "521129812"
    },
    "status": 0
  2. @sauloarruda sauloarruda revised this gist May 3, 2012. 1 changed file with 18 additions and 1 deletion.
    19 changes: 18 additions & 1 deletion result.json
    Original file line number Diff line number Diff line change
    @@ -1 +1,18 @@
    {"receipt":{"original_purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "original_transaction_id":"1000000046178817", "original_purchase_date_ms":"1335798355868", "transaction_id":"1000000046178817", "quantity":"1", "product_id":"com.mindmobapp.download", "bvrs":"20120427", "purchase_date_ms":"1335798355868", "purchase_date":"2012-04-30 15:05:55 Etc/GMT", "original_purchase_date":"2012-04-30 15:05:55 Etc/GMT", "purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "bid":"com.mindmobapp.MindMob", "item_id":"521129812"}, "status":0}
    {
    "receipt": {
    "original_purchase_date_pst": "2012-04-30 08:05:55 America/Los_Angeles",
    "original_transaction_id": "1000000046178817",
    "original_purchase_date_ms": "1335798355868",
    "transaction_id": "1000000046178817",
    "quantity": "1",
    "product_id": "com.mindmobapp.download",
    "bvrs": "20120427",
    "purchase_date_ms": "1335798355868",
    "purchase_date": "2012-04-30 15:05:55 Etc/GMT",
    "original_purchase_date": "2012-04-30 15:05:55 Etc/GMT",
    "purchase_date_pst": "2012-04-30 08:05:55 America/Los_Angeles",
    "bid": "com.mindmobapp.MindMob",
    "item_id": "521129812"
    },
    "status": 0
    }
  3. @sauloarruda sauloarruda revised this gist May 3, 2012. 2 changed files with 2 additions and 1 deletion.
    1 change: 1 addition & 0 deletions result.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    {"receipt":{"original_purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "original_transaction_id":"1000000046178817", "original_purchase_date_ms":"1335798355868", "transaction_id":"1000000046178817", "quantity":"1", "product_id":"com.mindmobapp.download", "bvrs":"20120427", "purchase_date_ms":"1335798355868", "purchase_date":"2012-04-30 15:05:55 Etc/GMT", "original_purchase_date":"2012-04-30 15:05:55 Etc/GMT", "purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "bid":"com.mindmobapp.MindMob", "item_id":"521129812"}, "status":0}
    2 changes: 1 addition & 1 deletion verifyReceipt.rb
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,6 @@
    uri = URI("https://sandbox.itunes.apple.com") # Use "https://buy.itunes.apple.com" for production
    Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    response = http.post('/verifyReceipt', params_json)
    # Puts the result!
    # Puts the result! (see an example below - result.json)
    puts response.body
    end
  4. @sauloarruda sauloarruda revised this gist May 3, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion verifyReceipt.rb
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@
    # This core reads an file called receipt (see an example bellow)
    params_json = "{ \"receipt-data\": \"#{open("./receipt").read}\" }"

    # Use curb to post to apple sandbox server
    # Use net/http to post to apple sandbox server
    uri = URI("https://sandbox.itunes.apple.com") # Use "https://buy.itunes.apple.com" for production
    Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    response = http.post('/verifyReceipt', params_json)
  5. @sauloarruda sauloarruda revised this gist Apr 30, 2012. 1 changed file with 7 additions and 9 deletions.
    16 changes: 7 additions & 9 deletions verifyReceipt.rb
    Original file line number Diff line number Diff line change
    @@ -2,17 +2,15 @@
    # Run this using "ruby verifyReceipt.rb"
    # By @sauloarruda (http://twitter.com/sauloarruda)

    # Require rubygems
    require 'rubygems'

    # Install curb before run this code => gem install curb
    require 'curb'
    require 'net/http'

    # This core reads an file called receipt (see an example bellow)
    params_json = "{ \"receipt-data\": \"#{open("./receipt").read}\" }"

    # Use curb to post to apple sandbox server
    c = Curl::Easy.http_post("https://sandbox.itunes.apple.com/verifyReceipt", params_json)

    # Puts the result!
    puts c.body_str
    uri = URI("https://sandbox.itunes.apple.com") # Use "https://buy.itunes.apple.com" for production
    Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    response = http.post('/verifyReceipt', params_json)
    # Puts the result!
    puts response.body
    end
  6. @sauloarruda sauloarruda created this gist Apr 30, 2012.
    46 changes: 46 additions & 0 deletions receipt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    ewoJInNpZ25hdHVyZSIgPSAiQXBNVUJDODZBbHpOaWtWNVl0clpBTWlKUWJLOEVk
    ZVhrNjNrV0JBWHpsQzhkWEd1anE0N1puSVlLb0ZFMW9OL0ZTOGNYbEZmcDlZWHQ5
    aU1CZEwyNTBsUlJtaU5HYnloaXRyeVlWQVFvcmkzMlc5YVIwVDhML2FZVkJkZlcr
    T3kvUXlQWkVtb05LeGhudDJXTlNVRG9VaFo4Wis0cFA3MHBlNWtVUWxiZElWaEFB
    QURWekNDQTFNd2dnSTdvQU1DQVFJQ0NHVVVrVTNaV0FTMU1BMEdDU3FHU0liM0RR
    RUJCUVVBTUg4eEN6QUpCZ05WQkFZVEFsVlRNUk13RVFZRFZRUUtEQXBCY0hCc1pT
    QkpibU11TVNZd0pBWURWUVFMREIxQmNIQnNaU0JEWlhKMGFXWnBZMkYwYVc5dUlF
    RjFkR2h2Y21sMGVURXpNREVHQTFVRUF3d3FRWEJ3YkdVZ2FWUjFibVZ6SUZOMGIz
    SmxJRU5sY25ScFptbGpZWFJwYjI0Z1FYVjBhRzl5YVhSNU1CNFhEVEE1TURZeE5U
    SXlNRFUxTmxvWERURTBNRFl4TkRJeU1EVTFObG93WkRFak1DRUdBMVVFQXd3YVVI
    VnlZMmhoYzJWU1pXTmxhWEIwUTJWeWRHbG1hV05oZEdVeEd6QVpCZ05WQkFzTUVr
    RndjR3hsSUdsVWRXNWxjeUJUZEc5eVpURVRNQkVHQTFVRUNnd0tRWEJ3YkdVZ1NX
    NWpMakVMTUFrR0ExVUVCaE1DVlZNd2daOHdEUVlKS29aSWh2Y05BUUVCQlFBRGdZ
    MEFNSUdKQW9HQkFNclJqRjJjdDRJclNkaVRDaGFJMGc4cHd2L2NtSHM4cC9Sd1Yv
    cnQvOTFYS1ZoTmw0WElCaW1LalFRTmZnSHNEczZ5anUrK0RyS0pFN3VLc3BoTWRk
    S1lmRkU1ckdYc0FkQkVqQndSSXhleFRldngzSExFRkdBdDFtb0t4NTA5ZGh4dGlJ
    ZERnSnYyWWFWczQ5QjB1SnZOZHk2U01xTk5MSHNETHpEUzlvWkhBZ01CQUFHamNq
    QndNQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVOaDNvNHAyQzBn
    RVl0VEpyRHRkREM1RllRem93RGdZRFZSMFBBUUgvQkFRREFnZUFNQjBHQTFVZERn
    UVdCQlNwZzRQeUdVakZQaEpYQ0JUTXphTittVjhrOVRBUUJnb3Foa2lHOTJOa0Jn
    VUJCQUlGQURBTkJna3Foa2lHOXcwQkFRVUZBQU9DQVFFQUVhU2JQanRtTjRDL0lC
    M1FFcEszMlJ4YWNDRFhkVlhBZVZSZVM1RmFaeGMrdDg4cFFQOTNCaUF4dmRXLzNl
    VFNNR1k1RmJlQVlMM2V0cVA1Z204d3JGb2pYMGlreVZSU3RRKy9BUTBLRWp0cUIw
    N2tMczlRVWU4Y3pSOFVHZmRNMUV1bVYvVWd2RGQ0TndOWXhMUU1nNFdUUWZna1FR
    Vnk4R1had1ZIZ2JFL1VDNlk3MDUzcEdYQms1MU5QTTN3b3hoZDNnU1JMdlhqK2xv
    SHNTdGNURXFlOXBCRHBtRzUrc2s0dHcrR0szR01lRU41LytlMVFUOW5wL0tsMW5q
    K2FCdzdDMHhzeTBiRm5hQWQxY1NTNnhkb3J5L0NVdk02Z3RLc21uT09kcVRlc2Jw
    MGJzOHNuNldxczBDOWRnY3hSSHVPTVoydG04bnBMVW03YXJnT1N6UT09IjsKCSJw
    dXJjaGFzZS1pbmZvIiA9ICJld29KSW05eWFXZHBibUZzTFhCMWNtTm9ZWE5sTFdS
    aGRHVXRjSE4wSWlBOUlDSXlNREV5TFRBMExUTXdJREE0T2pBMU9qVTFJRUZ0WlhK
    cFkyRXZURzl6WDBGdVoyVnNaWE1pT3dvSkltOXlhV2RwYm1Gc0xYUnlZVzV6WVdO
    MGFXOXVMV2xrSWlBOUlDSXhNREF3TURBd01EUTJNVGM0T0RFM0lqc0tDU0ppZG5K
    eklpQTlJQ0l5TURFeU1EUXlOeUk3Q2draWRISmhibk5oWTNScGIyNHRhV1FpSUQw
    Z0lqRXdNREF3TURBd05EWXhOemc0TVRjaU93b0pJbkYxWVc1MGFYUjVJaUE5SUNJ
    eElqc0tDU0p2Y21sbmFXNWhiQzF3ZFhKamFHRnpaUzFrWVhSbExXMXpJaUE5SUNJ
    eE16TTFOems0TXpVMU9EWTRJanNLQ1NKd2NtOWtkV04wTFdsa0lpQTlJQ0pqYjIw
    dWJXbHVaRzF2WW1Gd2NDNWtiM2R1Ykc5aFpDSTdDZ2tpYVhSbGJTMXBaQ0lnUFNB
    aU5USXhNVEk1T0RFeUlqc0tDU0ppYVdRaUlEMGdJbU52YlM1dGFXNWtiVzlpWVhC
    d0xrMXBibVJOYjJJaU93b0pJbkIxY21Ob1lYTmxMV1JoZEdVdGJYTWlJRDBnSWpF
    ek16VTNPVGd6TlRVNE5qZ2lPd29KSW5CMWNtTm9ZWE5sTFdSaGRHVWlJRDBnSWpJ
    d01USXRNRFF0TXpBZ01UVTZNRFU2TlRVZ1JYUmpMMGROVkNJN0Nna2ljSFZ5WTJo
    aGMyVXRaR0YwWlMxd2MzUWlJRDBnSWpJd01USXRNRFF0TXpBZ01EZzZNRFU2TlRV
    Z1FXMWxjbWxqWVM5TWIzTmZRVzVuWld4bGN5STdDZ2tpYjNKcFoybHVZV3d0Y0hW
    eVkyaGhjMlV0WkdGMFpTSWdQU0FpTWpBeE1pMHdOQzB6TUNBeE5Ub3dOVG8xTlNC
    RmRHTXZSMDFVSWpzS2ZRPT0iOwoJImVudmlyb25tZW50IiA9ICJTYW5kYm94IjsK
    CSJwb2QiID0gIjEwMCI7Cgkic2lnbmluZy1zdGF0dXMiID0gIjAiOwp9
    18 changes: 18 additions & 0 deletions verifyReceipt.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    # This code call the apple sandbox in app purchase server to validate a receipt using Ruby Code.
    # Run this using "ruby verifyReceipt.rb"
    # By @sauloarruda (http://twitter.com/sauloarruda)

    # Require rubygems
    require 'rubygems'

    # Install curb before run this code => gem install curb
    require 'curb'

    # This core reads an file called receipt (see an example bellow)
    params_json = "{ \"receipt-data\": \"#{open("./receipt").read}\" }"

    # Use curb to post to apple sandbox server
    c = Curl::Easy.http_post("https://sandbox.itunes.apple.com/verifyReceipt", params_json)

    # Puts the result!
    puts c.body_str