# Payment Gateway adapter for TBC Bank
#### შესავალი (მოკლე აღწერა)
მოცემული Python package წარმოადგენს ადაპტერს TBC-ის ონლაინ გადახდებისთვის, სადაც მოცემულია ყველა საჭირო ნაწილი, რომელიც მომხმარებელს საშუალებას მისცემს სერთიფიკატისა და პაროლის არსებობის შემთხვევაში მარტივად მოახდინოს დოკუმენტაციაში აღწერილი API მეთოდების გამოყენება.
happy coding!
#### API-ს იმპლემენტირებული მეთოდები
TBC API-სთან საურთიერთობოდ იმპლემენტირებულია შემდეგი 7 ძირითადი მეთოდი, რომელიც ქვემოთ არის მოცემული, ხოლო სანამ მეთოდების აღწერაზე გადავალ, საჭიროა შევქმნათ ჩვენი კლასი, რომლის მშობელიც იქნება `tbc_adapter.adapters.TBCAdapter` და იმპლემენტაცია გავუკეთოთ 2 property-ს. ქვემოთ არის მოცემული მაგალითი რეალური მუშა გარემოდან, რომლითაც შეგიძლიათ იხელმძღვანელოთ:
```python
import os
from tbc_adapter.adapters import TBCAdapter
from tbc_adapter.p12_converter import generate_pems
# ცვლადში არის მისამართი სადაც ცხოვრობს TBC-გან მოწოდებული .p12 გაფართოების ფაილი
# და იცხოვრებენ დაგენერირებული .pem გაფართოების ფაილები
CERTIFICATE_DIR = "/abs/path/to/certificate/"
# ცვლადში არის .p12 სერთიფიკატის პაროლი, რომელიც მოწოდებულია TBC ბანკის მიერ
CERTIFICATE_PSWD = "secret"
class MyFancyAdapter(TBCAdapter):
@property
def pem_paths(self):
p12_path = os.path.join(CERTIFICATE_DIR, "certificate.p12")
cert_path = os.path.join(CERTIFICATE_DIR, "certificate.pem")
key_path = os.path.join(CERTIFICATE_DIR, "privatekey.pem")
if not (os.path.isfile(cert_path) or os.path.isfile(key_path)):
cert_path, key_path = generate_pems(p12_path,
CERTIFICATE_PSWD,
CERTIFICATE_DIR)
return (cert_path, key_path)
@property
def service_url(self):
return "https://securepay.ufc.ge:18443/ecomm2/MerchantHandler"
```
პირველი property - `pem_paths` აბრუნებს .pem ფორმატში გადაყვანილ სერთიფიკატს და მის გასაღებს, ხოლო თუ ეს ორი კომპონენტი დირექტორიაში არ არის, მაშინ აგენერირებს, ინახავს დირექტორიაში და აბრუნებს მისამართებს. ხოლო, property `service_path` აბრუნებს ბანკის სერვისის მისამართს.
ახლა შეგვიძლია გადავიდეთ ჩვენი `MyFancyAdapter` კლასის გამოყენებაზე და სათითაოდ გავიაროთ იმპლემენტირებული მეთოდები:
#### 1) ტრანზაქციის id-ის დაგენერირება (თანხის ჩამოჭრით)
აბრუნებს: TRANSACTION_ID
გვჭირდება: კლიენტის IP მისამართი, გადასახდელი თანხა (თეთრებში)
```python
client_ip = "xxx.xxx.xxx.xxx"
amount_in_tetri = 3000
adapter = MyFanceAdapter(client_ip)
result = adapter.get_transaction_id(amount)
print(result) # >>> {"TRANSACTION_ID": "xyz"}
```
#### 2) ტრანზაქციის სტატუსის გაგება
აბრუნებს: RESULT, RESULT_CODE, CARD_NUMBER
გვჭირდება: კლიენტის IP მისამართი, ტრანზაქციის ID
```python
client_ip = "xxx.xxx.xxx.xxx"
trans_id = "xyz"
adapter = MyFanceAdapter(client_ip, trans_id)
result = adapter.get_transaction_status()
print(result) # >>> {"RESULT": "x", "RESULT_CODE": "y", CARD_NUMBER: "z"}
```
##### 3) დღის დახურვის ოპერაცია
აბრუნებს: RESULT, RESULT_CODE
გვჭირდება: კლიენტის IP მისამართი (ამ შემთხვევაში ჩვენი სერვერის)
```python
client_ip = "xxx.xxx.xxx.xxx"
adapter = MyFanceAdapter(client_ip)
result = adapter.end_business_day()
print(result) # >>> {"RESULT": "x", "RESULT_CODE": "y"}
```
##### 4) პრე-ავტორიზაცია (თანხის დაბლოკვა)
აბრუნებს: TRANSACTION_ID
გვჭირდება: კლიენტის IP მისამართი, თანხა (თეთრებში, რომელიც დაებლოკება მომხმარებელს)
```python
client_ip = "xxx.xxx.xxx.xxx"
amount = 3000
adapter = MyFanceAdapter(client_ip)
result = adapter.get_preauthed_transaction_id(amount)
print(result) # >>> {"TRANSACTION_ID": "xyz"}
```
##### 5) პრე-ავტორიზებული ტრანზაქციის კომიტი (თანხის ჩამოჭრა)
აბრუნებს: RESULT, RESULT_CODE, CARD_NUMBER
გვჭირდება: კლიენტის IP მისამართი, თანხა (თეთრებში), ტრანზაქციის ID
```python
client_ip = "xxx.xxx.xxx.xxx"
trans_id = "xyz"
amount = 3000
adapter = MyFanceAdapter(client_ip, trans_id)
result = adapter.commit_preauthed(amount)
print(result) # >>> {"RESULT": "x", "RESULT_CODE": "y", CARD_NUMBER: "z"}
```
##### 6) ტრანზაქციის რევერსალი
აბრუნებს: RESULT, RESULT_CODE
გვჭირდება: კლიენტის IP მისამართი, ტრანზაქციის ID
```python
client_ip = "xxx.xxx.xxx.xxx"
trans_id = "xyz"
adapter = MyFancyAdapter(client_ip, trans_id)
result = adapter.reverse_transaction()
print(result) # >>> {"RESULT_CODE": "x", "RESULT": "y"}
```
##### 7) ტრანზაქციის რეფანდი
აბრუნებს: RESULT, RESULT_CODE
გვჭირდება: კლიენტის IP მისამართი, ტრანზაქციის ID, თანხა (თეთრებში) (არასავალდებულო)
```python
client_ip = "xxx.xxx.xxx.xxx"
trans_id = "xyz"
amount = 3000
adapter = MyFancyAdapter(client_ip, trans_id)
# თუ ნაწილობრივი refund-ს ვანხორციელებთ
result = adapter.refund_transaction(amount)
# თუ სრულ refund-ს ვანხორციელ�
PyPI 官网下载 | tbc_adapter-0.1.tar.gz
版权申诉
197 浏览量
2022-01-30
04:29:27
上传
评论
收藏 5KB GZ 举报
挣扎的蓝藻
- 粉丝: 13w+
- 资源: 15万+
最新资源
- 电气类117、变电站真实巡检电力设备检测数据集(7500多张+15类+YOLO格式txt标签)-第二部分
- 电气类、117.变电站真实巡检电力设备检测数据集(7500多张+15类+YOLO格式txt标签)-第一部分
- IMG_20180720_124347_01.jpg
- IMG20240621095811.jpg
- jQuery 库.docx
- 基于 C 实现的图像处理(BMP)课程设计
- ST MCSDK 6.3.0
- 基于 C++实现的虚拟航班订票系统【C++课程设计】
- 111111111111111111
- 海信智能电视刷机数据 LED43K5100U(0000) 生产用软件数据 务必确认机编一致 强制刷机 整机USB升级程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈