Guest User

Python REST API Example

a guest
Nov 7th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.71 KB | None | 0 0
  1. import os
  2. import json
  3. import requests
  4. from requests.auth import HTTPBasicAuth
  5. import platform
  6. from datetime import datetime
  7.  
  8. ##### Start Editing ######
  9. host = "https://example.com" # Your Wordpress Site url
  10. consumer_key = "ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  11. consumer_secret = "cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  12. license_key = 'Replace-WITH-YOUR-KEY'
  13. ##### STOP Editing ######
  14. myjson_headers = {'Content-Type': 'application/json'}
  15.  
  16. def retrieve_license(account_key_to_check):
  17.     """Retrieves a single license key by the license key string itself. The response contains the queried license key
  18.    data object.
  19.    """
  20.     # https://www.licensemanager.at/docs/rest-api/developer-documentation/retrieve-a-license/
  21.     # GET Request Url /wp-json/lmfwc/v2/licenses/FOO-FIGHTERS
  22.     url = host + "/wp-json/lmfwc/v2/licenses/" + account_key_to_check
  23.  
  24.     json_response = requests.get(url, auth=HTTPBasicAuth(consumer_key, consumer_secret)).text
  25.     # print(json_response)
  26.     json_response_dict = json.loads(str(json_response))
  27.     print(json_response_dict)
  28.     print(json.dumps(json_response_dict, indent=4))
  29.  
  30.     # # Parse license information from json url
  31.     # license_request_status = json_response_dict["success"]
  32.     # license_request_id = json_response_dict["data"]["id"]
  33.     # license_request_orderid = json_response_dict["data"]["orderId"]
  34.     # license_request_productId = json_response_dict["data"]["productId"]
  35.     # license_request_userId = json_response_dict["data"]["userId"]
  36.     # license_request_licenseKey = json_response_dict["data"]["licenseKey"]
  37.     # license_request_expiresAt = json_response_dict["data"]["expiresAt"]
  38.     # license_request_validFor = json_response_dict["data"]["validFor"]
  39.     # license_request_source = json_response_dict["data"]["source"]
  40.     # license_request_status = json_response_dict["data"]["status"]
  41.     # license_request_timesActivated = json_response_dict["data"]["timesActivated"]
  42.     # license_request_timesActivatedMax = json_response_dict["data"]["timesActivatedMax"]
  43.     # license_request_createdAt = json_response_dict["data"]["createdAt"]
  44.     # license_request_updatedAt = json_response_dict["data"]["updatedAt"]
  45.     # license_request_updatedBy = json_response_dict["data"]["updatedBy"]
  46.     #
  47.     # # Print parsed results to stdout
  48.     # print("license_request_status : %s" % license_request_status)
  49.     # print("license_request_id : %s" % license_request_id)
  50.     # print("license_request_orderid : %r" % license_request_orderid)
  51.     # print("license_request_productId : %s" % license_request_productId)
  52.     # print("license_request_userId : %s" % license_request_userId)
  53.     # print("license_request_licenseKey : %s" % license_request_licenseKey)
  54.     # print("license_request_expiresAt : %s" % license_request_expiresAt)
  55.     # print("license_request_validFor : %r" % license_request_validFor)
  56.     # print("license_request_source : %s" % license_request_source)
  57.     # print("license_request_status : %s" % license_request_status)
  58.     # print("license_request_timesActivated : %s" % license_request_timesActivated)
  59.     # print("license_request_timesActivatedMax : %s" % license_request_timesActivatedMax)
  60.     # print("license_request_createdAt : %r" % license_request_createdAt)
  61.     # print("license_request_updatedAt : %s" % license_request_updatedAt)
  62.     # print("license_request_updatedBy : %s" % license_request_updatedBy)
  63.     return json_response_dict
  64.  
  65.  
  66. def verify_license_active(account_key_to_check):
  67.     # Retrieve License details. Does license exist?
  68.     try:
  69.         json_response_dict = retrieve_license(account_key_to_check)
  70.     except:
  71.         print('Could not retrieve license details')
  72.  
  73.     # Handle Errors from retrieve license gracefully and return False and json dict of the full error code
  74.     try:
  75.         if json_response_dict["code"]:
  76.             print('License retrieval error')
  77.             return False, json_response_dict
  78.     except:
  79.         pass
  80.         print('No License retrieval error found')
  81.  
  82.     # Parse license information from json url
  83.     license_status = json_response_dict["success"]
  84.     license_id = json_response_dict["data"]["id"]
  85.     license_orderid = json_response_dict["data"]["orderId"]
  86.     license_productId = json_response_dict["data"]["productId"]
  87.     license_userId = json_response_dict["data"]["userId"]
  88.     license_licenseKey = json_response_dict["data"]["licenseKey"]
  89.     license_expiresAt = json_response_dict["data"]["expiresAt"]
  90.     license_validFor = json_response_dict["data"]["validFor"]
  91.     license_source = json_response_dict["data"]["source"]
  92.     license_status = json_response_dict["data"]["status"]
  93.     license_timesActivated = json_response_dict["data"]["timesActivated"]
  94.     license_timesActivatedMax = json_response_dict["data"]["timesActivatedMax"]
  95.     license_createdAt = json_response_dict["data"]["createdAt"]
  96.     license_updatedAt = json_response_dict["data"]["updatedAt"]
  97.     license_updatedBy = json_response_dict["data"]["updatedBy"]
  98.  
  99.     # Print parsed results to stdout
  100.     print("license_status : %s" % license_status)
  101.     print("license_id : %s" % license_id)
  102.     print("license_orderid : %r" % license_orderid)
  103.     print("license_productId : %s" % license_productId)
  104.     print("license_userId : %s" % license_userId)
  105.     print("license_licenseKey : %s" % license_licenseKey)
  106.     print("license_expiresAt : %s" % license_expiresAt)
  107.     print("license_validFor : %r" % license_validFor)
  108.     print("license_source : %s" % license_source)
  109.     print("license_status : %s" % license_status)
  110.     print("license_timesActivated : %s" % license_timesActivated)
  111.     print("license_timesActivatedMax : %s" % license_timesActivatedMax)
  112.     print("license_createdAt : %r" % license_createdAt)
  113.     print("license_updatedAt : %s" % license_updatedAt)
  114.     print("license_updatedBy : %s" % license_updatedBy)
  115.     # return json_response_dict
  116.  
  117.     # Is license expired?
  118.     # 2020-11-06 07:33:56
  119.     past = datetime.strptime(str(json_response_dict["data"]["expiresAt"]), "%Y-%m-%d %H:%M:%S")
  120.     present = datetime.now()
  121.     if past.date() < present.date():
  122.         print('License is expired')
  123.         return False, 'License is expired'
  124.     else:
  125.         print('License is not expired')
  126.  
  127.     # Detect device machine code uuid
  128.     # machine_code = str(Helpers.GetMachineCode())
  129.  
  130.     try:
  131.         machine_nicename = str(platform.node())
  132.         print('Machine Nicename: ' + machine_nicename)
  133.     except:
  134.         pass
  135.  
  136.     # To do
  137.     # # Is device already activated?
  138.     # activate_license_uuid_response_dict = activate_license_uuid(account_key_to_check)
  139.     # try:
  140.     #     print('Checking for success status')
  141.     #     success_status = str(activate_license_uuid_response_dict["success"])
  142.     #     print(success_status)
  143.     #     if activate_license_uuid_response_dict["success"]:
  144.     #         print('License verification Success')
  145.     #         global license_key_is_valid
  146.     #         license_key_is_valid = True
  147.     #     return True
  148.     # except:
  149.     #     print('License activation failed!')
  150.     #     pass
  151.     #
  152.     # print(activate_license_uuid_response_dict)
  153.  
  154.     # Activate license if not activated already and increase the activation count and set status active and report machine_code and machine_nicename
  155.  
  156.     print('License verification Success :)')
  157.     return True
  158.  
  159.  
  160. ### TO Test ####
  161.  
  162. # Verify a license is valid and not expired.
  163. print('==================================')
  164. print('Retrieve license Details')
  165. verify_license_active(license_key)
  166. print('==================================')
  167.  
  168. # How to just retrieve license details
  169. print('==================================')
  170. print('Retrieve license Details')
  171. retrieve_license(license_key)
  172. print('==================================')
  173.  
Add Comment
Please, Sign In to add comment