import requests import json from ..configuration.environment import Environment # DOCUMENTATION AT : https://developer.paypal.com/api/rest/requests/ # username and password username = Environment.paypal_id_sandbox password = Environment.paypal_key_sandbox ######## STEP 1: Validation ######## # url for validation post request validation_url = "https://api-m.sandbox.paypal.com/v1/oauth2/token" validation_url_prod = "https://api-m.paypal.com/v1/oauth2/token" # payload for the post request validation_data = {'grant_type': 'client_credentials'} # pass the request validation_response = requests.post( url=validation_url, data=validation_data, auth=(username, password) ) # todo check status code + try except. Status code 201 ? print(validation_response.text) access_token = json.loads(validation_response.text)["access_token"] ######## STEP 2: Create Order ######## # url for post request order_url = "https://api-m.sandbox.paypal.com/v2/checkout/orders" order_url_prod = "https://api-m.paypal.com/v2/checkout/orders" # payload for the request order_data = { "intent": "CAPTURE", "purchase_units": [ { "items": [ { "name": "AnyWay Credits", "description": "50 pack of credits", "quantity": 1, "unit_amount": { "currency_code": "CHF", "value": "5.00" } } ], "amount": { "currency_code": "CHF", "value": "5.00", "breakdown": { "item_total": { "currency_code": "CHF", "value": "5.00" } } } } ], "application_context": { "return_url": "https://anydev.info", "cancel_url": "https://anydev.info" } } order_response = requests.post( url=order_url, headers={"Authorization": f"Bearer {access_token}"}, ## need access token here? json=order_data, auth=(username, password) ) # todo check status code + try except print(order_response.text) order_id = json.loads(order_response.text)["id"] ######## STEP 3: capture payment # url for post request capture_url = f"https://api-m.sandbox.paypal.com/v2/checkout/orders/{order_id}/capture" capture_url_prod = f"https://api-m.paypal.com/v2/checkout/orders/{order_id}/capture" capture_response = requests.post( url=capture_url, json={}, auth=(username, password) ) # todo check status code + try except print(capture_response.text) # order_id = json.loads(response.text)["id"]