Commit a2d0fc24 by aa.gusti

Merge branch 'sambat' of https://git.opensipkd.com/sugiana/iso8583-web into sambat

2 parents 8eb6a40a d3f34708
...@@ -52,9 +52,11 @@ class View(BaseView): ...@@ -52,9 +52,11 @@ class View(BaseView):
bit_003=iso.data["processingCode"]) bit_003=iso.data["processingCode"])
try: try:
data = iso.data["additionalData"] data = iso.data["additionalData"]
profile = FixLength(INVOICE_PROFILE) if data:
profile.set_raw(data) log_web_debug(data)
iso_log.bit_062_data = profile.to_dict() profile = FixLength(INVOICE_PROFILE)
profile.set_raw(data)
iso_log.bit_062_data = profile.to_dict()
except BitNotSet: except BitNotSet:
pass pass
return iso_log return iso_log
......
...@@ -12,19 +12,24 @@ from iso8583_web.scripts.views.linkaja.models import LogSam ...@@ -12,19 +12,24 @@ from iso8583_web.scripts.views.linkaja.models import LogSam
from iso8583_web.tools.this_framework import get_settings from iso8583_web.tools.this_framework import get_settings
from datetime import datetime from datetime import datetime
import requests import requests
INQ_CODE = "301099"
PAY_CODE = "541099"
FEAT_CODE = "017"
TERM_ID = "SLR"
TERM_NAME = "LINKAJA"
CARD_NAME = TERM_NAME
INQ_REQ = { INQ_REQ = {
"primaryAccountNumber": "622011888888888888", "primaryAccountNumber": "622011888888888888",
"processingCode": "321000", "processingCode": INQ_CODE,
"amountTransaction": "", "amountTransaction": "",
"settlementDate": "0326", "settlementDate": "0326",
"merchantType": "6015", "merchantType": "6015",
"aggregatorCode": "W0216", "aggregatorCode": "W0216",
"caCode": "CA1830", "caCode": "CA1830",
"terminalAggregator": { "terminalAggregator": {
"terminalIdentifierNumber": "7782", "terminalIdentifierNumber": TERM_ID,
"terminalName": "BJBSAM", "terminalName": TERM_NAME,
"cardAcceptorName": "BJBSAM" "cardAcceptorName": CARD_NAME
}, },
"currencyCode": "360", "currencyCode": "360",
"amountInformation": { "amountInformation": {
...@@ -34,7 +39,7 @@ INQ_REQ = { ...@@ -34,7 +39,7 @@ INQ_REQ = {
"totalAmount": "" "totalAmount": ""
}, },
"pay": "PAY", "pay": "PAY",
"featureCode": "009", "featureCode": FEAT_CODE,
"billInformation": { "billInformation": {
"bills": [{ "bills": [{
"info": "1000000108767" "info": "1000000108767"
...@@ -55,7 +60,7 @@ INQ_REQ = { ...@@ -55,7 +60,7 @@ INQ_REQ = {
PAY_REQ = \ PAY_REQ = \
{ {
"processingCode": "521000", "processingCode": PAY_CODE,
"sequenceNumber": "", "sequenceNumber": "",
"sourceAccountNumber": "0098889231001", "sourceAccountNumber": "0098889231001",
"systemTraceAuditNumber": "", "systemTraceAuditNumber": "",
...@@ -79,9 +84,9 @@ def send_data(json_data, conf): ...@@ -79,9 +84,9 @@ def send_data(json_data, conf):
"http://localhost:7001/bjb/sambat/test" "http://localhost:7001/bjb/sambat/test"
data = json_data data = json_data
# todo butuh server buat testing json sementara pake static response # todo butuh server buat testing json sementara pake static response
if json_data["processingCode"] == '321000': if json_data["processingCode"] == INQ_CODE:
bjb_sam_url += "/inquiryPaymentRest" bjb_sam_url += "/inquiryPaymentRest"
elif json_data["processingCode"] == '521000': elif json_data["processingCode"] == PAY_CODE:
bjb_sam_url += "/paymentRest" bjb_sam_url += "/paymentRest"
log_web_info(json.dumps(data)) log_web_info(json.dumps(data))
r = requests.post(bjb_sam_url, json=data) r = requests.post(bjb_sam_url, json=data)
...@@ -104,30 +109,42 @@ class Transaksi(object): ...@@ -104,30 +109,42 @@ class Transaksi(object):
self.response = None self.response = None
if method == "reversal": # data Payment ada (berarti reversal) if method == "reversal": # data Payment ada (berarti reversal)
self.mti = "0400" self.mti = "0400"
self.data["processingCode"] = "521000" self.data["processingCode"] = PAY_CODE
elif method == "payment": # data Inq ada (berarti payment) elif method == "payment": # data Inq ada (berarti payment)
db_session = get_db_session() db_session = get_db_session()
pay = db_session.query(LogSam).filter_by(rpc_id=inq.id, mti="0200", bit_003='521000').first() pay = db_session.query(LogSam).filter_by(rpc_id=inq.id,
mti="0200", bit_003=PAY_CODE).first()
if pay: if pay:
pay = db_session.query(LogSam).filter_by(rpc_id=inq.id, mti="0210", bit_003='521000').first() pay = db_session.query(LogSam).filter_by(rpc_id=inq.id,
mti="0210", bit_003=PAY_CODE).first()
if pay: if pay:
raise AlreadyPaidError() raise AlreadyPaidError()
inq = db_session.query(LogSam).filter_by(rpc_id=inq.id, mti="0210", bit_003='321000').first() inq = db_session.query(LogSam).filter_by(rpc_id=inq.id,
mti="0210", bit_003=INQ_CODE).first()
if not inq: if not inq:
raise BillRefNotFound() raise BillRefNotFound()
self.mti = "0200" self.mti = "0200"
self.data = inq.message self.data = inq.message
self.data["processingCode"] = "521000" self.data["processingCode"] = PAY_CODE
#stan = int(self.data["systemTraceAuditNumber"])+1
#self.data["systemTraceAuditNumber"] = str(stan).zfill(6)
self.set_local_time() self.set_local_time()
#elf.data["systemTraceAuditNumber"] = str(stan).zfill(6)
self.data["systemTraceAuditNumber"] = self.data["timeLocalTransaction"]
else: else:
self.mti = "0200" self.mti = "0200"
self.data = INQ_REQ.copy() self.data = INQ_REQ.copy()
# self.data["systemTraceAuditNumber"] = "880977" # self.data["systemTraceAuditNumber"] = "880977"
self.data["caCode"] = "ca_code" in conf and conf["ca_code"] or "123456" self.data["aggregatorCode"] = "agg_code" in conf \
self.data["processingCode"] = "321000" and conf["agg_code"] or "W0227"
self.data["caCode"] = "ca_code" in conf and conf["ca_code"] \
or "CA1864"
self.data["processingCode"] = INQ_CODE
self.data["billInformation"]["bills"][0]["info"] = p["invoice_id"] self.data["billInformation"]["bills"][0]["info"] = p["invoice_id"]
self.set_local_time() self.set_local_time()
...@@ -136,6 +153,7 @@ class Transaksi(object): ...@@ -136,6 +153,7 @@ class Transaksi(object):
self.data["timeLocalTransaction"] = time.strftime("%H%M%S") self.data["timeLocalTransaction"] = time.strftime("%H%M%S")
self.data["localTransactionDate"] = time.strftime("%m%d") self.data["localTransactionDate"] = time.strftime("%m%d")
self.data["transmissionDateTime"] = time.strftime("%m%d%H%M%S") self.data["transmissionDateTime"] = time.strftime("%m%d%H%M%S")
self.data["settlementDate"] = time.strftime("%m%d")
def get_stan(self): def get_stan(self):
return self.data["systemTraceAuditNumber"] return self.data["systemTraceAuditNumber"]
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!