def pay(self, amount, card_no, track_2, password): # 接收提交的数据 input = request.json # 000010: 消费 trans = BufferTrans() # 交易类型 trans.action = '000010' trans.shop_no = session['shop_no'] # 终端号 trans.terminal_no = session['default_terminal'] # 卡号 trans.card_no = card_no # 交易金额 trans.amount = amount # 二磁道 trans.track_2 = track_2 # 卡密码 trans.password = password # 客户端版本 trans.client_version = '1.0' # 交易界面,1 for B/S trans.interface = '1' print dir(trans) print type(trans) trans_string = trans.SerializeToString() import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) s.connect(('127.0.0.1', 8005)) s.send(trans_string) result = s.recv(4096) result = eval(result) return result
def post(self): # 是否有默认终端? if not session['default_terminal']: return jsonify(success=False, msg=u'无默认终端,请先设置默认终端', show_msg=True) # 接收提交的数据 input = request.json action = input.get('trans_code', '').strip() # 000010: 消费 * # 000020: 消费撤销 * # 000030: 充值 * # 000040: 充值撤销 * # 000050: 积分消费 * # 000060: 积分消费撤销 * # 000070: 积分充值 * # 000080: 积分充值撤销 * # 000090: 余额查询 * # 000110: 卡启用 * # 000140: 卡改密码 * # 000150: 卡改有效期 * trans = BufferTrans() # 交易类型 trans.action = action # 商户号 if action in ['000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150']: trans.shop_no = session['shop_no'] # 终端号 if action in ['000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150']: trans.terminal_no = session['default_terminal'] # 卡号 if action in ['000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150']: trans.card_no = input.get('card_no', '') # 新卡号 if action in ['000120']: trans.new_card_no = input.get('new_card_no', '') # 交易金额 if action in ['000010', '000030', '000050', '000070']: trans.amount = int(round(float(input.get('amount', 0)) * 100)) # 批次号 if action in ['x']: trans.batch_no = '0' # 流水号 if action in ['x']: trans.trace_no = '0' # 二磁道 if action in ['000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150']: track2 = input.get('track_2', '') trans.track_2 = trans.track_2 if track2 else '0' * 37 # 如果track2是 '',则认为是自发卡,需要从数据库中获取到真正的卡号 if not track2: q = db_session.query(CardInfo).filter(CardInfo.custom_card_no==trans.card_no) try: trans.card_no = q.one().card_no except Exception, e: return jsonify(success=False, msg=u'无此卡号')
def post(self): # 是否有默认终端? if not session['default_terminal']: return jsonify(success=False, msg=u'无默认终端,请先设置默认终端', show_msg=True) # 接收提交的数据 input = request.json action = input.get('trans_code', '').strip() # 000010: 消费 * # 000020: 消费撤销 * # 000030: 充值 * # 000040: 充值撤销 * # 000050: 积分消费 * # 000060: 积分消费撤销 * # 000070: 积分充值 * # 000080: 积分充值撤销 * # 000090: 余额查询 * # 000110: 卡启用 * # 000140: 卡改密码 * # 000150: 卡改有效期 * trans = BufferTrans() # 交易类型 trans.action = action # 商户号 if action in [ '000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150' ]: trans.shop_no = session['shop_no'] # 终端号 if action in [ '000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150' ]: trans.terminal_no = session['default_terminal'] # 卡号 if action in [ '000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150' ]: trans.card_no = input.get('card_no', '') # 新卡号 if action in ['000120']: trans.new_card_no = input.get('new_card_no', '') # 交易金额 if action in ['000010', '000030', '000050', '000070']: trans.amount = int(round(float(input.get('amount', 0)) * 100)) # 批次号 if action in ['x']: trans.batch_no = '0' # 流水号 if action in ['x']: trans.trace_no = '0' # 二磁道 if action in [ '000010', '000020', '000030', '000040', '000050', '000060', '000070', '000080', '000090', '000110', '000120', '000140', '000150' ]: track2 = input.get('track_2', '') trans.track_2 = trans.track_2 if track2 else '0' * 37 # 如果track2是 '',则认为是自发卡,需要从数据库中获取到真正的卡号 if not track2: q = db_session.query(CardInfo).filter( CardInfo.custom_card_no == trans.card_no) try: trans.card_no = q.one().card_no except Exception, e: return jsonify(success=False, msg=u'无此卡号')