123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # -*- encoding: utf-8 -*-
- """
- @File : PayPalUtil.py
- @Time : 2022/9/1 14:41
- @Author : stephen
- @Email : zhangdongming@asj6.wecom.work
- @Software: PyCharm
- """
- import requests
- class PayPalService:
- API_BASE_URL = 'https://api-m.paypal.com'
- CONTENT_TYPE = 'application/json'
- def __init__(self, client_id, client_secret):
- self.auth = client_id, client_secret
- self.headers = {
- 'Content-Type': self.CONTENT_TYPE,
- }
- self.access_token = self._fetch_access_token()
- def _fetch_access_token(self):
- data = {'grant_type': 'client_credentials'}
- url = f'{self.API_BASE_URL}/v1/oauth2/token'
- response = requests.post(url, data=data, headers=self.headers, auth=self.auth)
- assert response.status_code == 200
- return response.json()['access_token']
- def _get_headers(self):
- headers = {
- 'Authorization': 'Bearer ' + self.access_token,
- 'Content-Type': self.CONTENT_TYPE,
- }
- return headers
- def get_transactions(self, params):
- """
- 交易历史搜索
- api:https://developer.paypal.com/docs/api/transaction-search/v1/
- @return: 交易历史列表
- """
- headers = self._get_headers()
- response = requests.get(f'{self.API_BASE_URL}/v1/reporting/transactions', headers=headers,
- params=params)
- # 解析响应
- assert response.status_code == 200
- return response.json()
- if __name__ == '__main__':
- pass
- # params = (
- # ('start_date', '2023-09-15T00:00:00-0800'),
- # ('end_date', '2023-09-15T23:59:59-0800'),
- # ('fields', 'all'),
- # ('page_size', '20'),
- # ('page', '1'),
- # )
- # trans_res = PayPalService().get_transactions(params)
- # print(trans_res)
|