Nicepay.py
5.25 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import socket
import hashlib
import sys
import requests
py3 = sys.version >= '3'
from urllib.parse import urlparse, urlencode
import http.client
if py3:
pass
else:
import urlparse
import httplib
# import urllib
import json
# global iMid
global merchantKey
# iMid = 'IONPAYTEST'
# merchantKey = '33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A=='
timeout_connect = 30
timeout_read = 25
requestData = {}
requestDataJson = {}
resultData = {}
def set(name, value):
requestData[name] = value
return requestData
def merchantToken():
if not requestData['timeStamp']:
sys.exit("Cannot set Merchant Token, please setting timeStamp")
elif not requestData['referenceNo']:
sys.exit("Cannot set Merchant Token, please setting referenceNo")
elif not requestData['amt']:
sys.exit("Cannot set Merchant Token, please setting amt")
else:
mercToken = requestData['timeStamp'] + requestData["iMid"] + \
requestData['referenceNo'] + requestData['amt'] + \
merchantKey
token = hashlib.sha256(mercToken.encode('ascii')).hexdigest()
return token
def merchantTokenCancel():
if not requestData['timeStamp']:
sys.exit("Cannot set Merchant Token, please setting timeStamp")
elif not requestData['tXid']:
sys.exit("Cannot set Merchant Token, please setting tXid")
elif not requestData['amt']:
sys.exit("Cannot set Merchant Token, please setting amt")
else:
mercToken = requestData['timeStamp'] + requestData["iMid"] + requestData['tXid'] + requestData['amt'] + merchantKey
token = hashlib.sha256(mercToken.encode('ascii')).hexdigest()
return token
def merchantTokenVacctInquiry():
if not requestData['vacctNo']:
sys.exit("Cannot set Merchant Token, please setting vacctNo")
elif not requestData['startDt']:
sys.exit("Cannot set Merchant Token, please setting startDt")
else:
mercToken = requestData["iMid"] + requestData['vacctNo'] + requestData['startDt'] + merchantKey
token = hashlib.sha256(mercToken.encode('ascii')).hexdigest()
return token
def merchantTokenCustomerIdInquiry():
if not requestData['customerId']:
sys.exit("Cannot set Merchant Token, please setting customerId")
elif not requestData['startDt']:
sys.exit("Cannot set Merchant Token, please setting startDt")
else:
mercToken = requestData["iMid"] + requestData['customerId'] + requestData['startDt'] + merchantKey
token = hashlib.sha256(mercToken.encode('ascii')).hexdigest()
return token
def userIp():
return socket.gethostbyname(socket.gethostname())
def niceRegister():
requestDataJson = json.dumps(requestData)
apiUrl = "https://api.nicepay.co.id/nicepay/direct/v2/registration"
resultData = sendDataJson(requestDataJson, apiUrl)
return resultData
def niceInquiry():
requestDataJson = json.dumps(requestData)
apiUrl = "https://api.nicepay.co.id/nicepay/direct/v2/inquiry"
resultData = sendDataJson(requestDataJson, apiUrl)
return resultData
def niceCancel():
requestDataJson = json.dumps(requestData)
apiUrl = "https://api.nicepay.co.id/nicepay/direct/v2/cancel"
resultData = sendDataJson(requestDataJson, apiUrl)
return resultData
def nicePayment():
apiUrl = "https://api.nicepay.co.id/nicepay/direct/v2/payment"
resultData = sendData(requestData, apiUrl)
return resultData
def niceVacctInquiry():
apiUrl = "https://api.nicepay.co.id/nicepay/api/vacctInquiry.do"
resultData = sendData(requestData, apiUrl)
return resultData
def niceCustomerIdInquiry():
apiUrl = "https://api.nicepay.co.id/nicepay/api/vacctCustomerIdInquiry.do"
resultData = sendData(requestData, apiUrl)
return resultData
def niceInstallmentInfo():
requestDataJson = json.dumps(requestData)
apiUrl = "https://api.nicepay.co.id/nicepay/direct/v2/instInfoInquiry"
resp = sendDataJson(requestDataJson, apiUrl)
resultData = sendDataJson(requestDataJson, apiUrl)
return resultData
def sendDataJson(data, apiUrl):
requestData = data
host = urlparse(apiUrl)
hostUrl = host.netloc
hostPath = host.path
headers = {"Content-type": "application/json"}
# if py3:
# conn = http.client.HTTPSConnection(hostUrl,timeout=timeout_connect)
# else:
# conn = httplib.HTTPSConnection(hostUrl, 443, 0, 0, 0, timeout_connect)
# conn.request("POST", hostPath, requestData, headers)
# readData = conn.getresponse(timeout_read)
# resultData = readData.read()
resp = requests.post(apiUrl, headers=headers, data=data)
return resp.text
def sendData(data, apiUrl):
host = urlparse(apiUrl)
hostUrl = host.netloc
hostPath = host.path
params = urlencode(data)
headers = {"Content-type": "application/x-www-form-urlencoded"}
# if py3:
# conn = http.client.HTTPSConnection(hostUrl,timeout=timeout_connect)
# else:
# conn = httplib.HTTPSConnection(hostUrl, 443, 0, 0, 0, timeout_connect)
#
# conn.request("POST", hostPath, params, headers)
# readData = conn.getresponse(timeout_read)
# resultData = readData.read()
resp = requests.post(apiUrl, headers=headers, data=data)
return resp.text