payment.py
3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import base64
from opensipkd.base.tools import get_random_number
from pyramid.view import view_config
import logging
log = logging.getLogger(__name__)
"""
test-purchase http://server/api/test/prepaid/purchase
"""
def validate_header(request):
env = request.environ
# http_header = env["HTTP_HEADER"]
# log.info(env)
# if 'HTTP_AUTHORIZATION' not in env:
# log.info("HTTP_AUTHORIZATION tidak ditemukan")
# return
#
# auth = env['HTTP_AUTHORIZATION'].split()
# log.info(auth)
# if len(auth) < 2 or auth[0] != "Bearer":
# log.info('Error Auth')
# return
#
# key = ":".join(['agratek', '4444444']).encode()
# key_encoded = base64.b64encode(key).decode()
# log.info(key_encoded)
# if auth[1] != key_encoded:
# return
return True
def anauthorized(request):
request.response.status = 401
result = {
"status": "UNAUTHORIZED",
"data": {
"errors": [
"Unauthorized"
]
},
"message": ""
}
return result
def bad_request(request, message=None):
if not message:
message = "Paramter(s) Expected"
request.response.status = 400
result = {
"status": "BAD_REQUEST",
"data": {
"errors": [
"ERROR_MESSAGE_1",
"ERROR_MESSAGE_2",
"ERROR_MESSAGE_ETC"
]
},
"message": message
}
return result
def produk_not_found(request):
return bad_request(request, "Prduk Not Found")
# @view_config(route_name='test-purchase', renderer='json', request_method="POST")
def view_test_purchase(request):
denom=""
if denom[:2] == "CC":
tx_id = get_random_number(32)
return {
'resultCd': '0000',
'resultMsg': 'SUCCESS',
'tXid': 'AGRATEK{}'.format(tx_id),
'referenceNo': '2669739141972781',
'payMethod': '01',
'amt': ' 10000',
'transDt': '20190906',
'transTm': '110857',
'description': 'Transaction Description',
'bankCd': None,
'vacctNo': None,
'mitraCd': None,
'payNo': None,
'currency': None,
'goodsNm': None,
'billingNm': None,
'vacctValidDt': None,
'vacc tValidTm': None,
'payValidDt': None,
'payValidTm': None,
'requestURL': None
}
return produk_not_found(request)
# @view_config(route_name='test-order', renderer='json', request_method="GET")
# def view_test_pln_pre(request):
# if not validate_header(request):
# return anauthorized(request)
# matchdict = request.matchdict
# id = "id" in matchdict and matchdict["id"] or ""
# return {
# "order_id": 123,
# "name": "Telkomsel 5",
# "msisdn": "08xx",
# "serial_number": "XXX",
# "status": "COMPLETED",
# "price": 5000
# }