def handle_card_trans(self, data): print "server2.py data ->", data logger.debug(u'交易类型:' + data['action']) logger.debug(u'商户号:' + data['shop_no']) logger.debug(u'终端号:' + data['terminal_no']) logger.debug('card_no:' + data['card_no']) logger.debug('new_card_no:' + data['new_card_no']) trans_result = {} # 定义交易结果变量 trans = Trans(data) # if data['action'] == 'singin': # 签到 # trans_result = trans.signin() if data['action'] == '000010': # 消费 trans_result = trans.payment() if data['action'] == '000030': # 充值 trans_result = trans.deposit() if data['action'] == '000190': # 撤销 trans_result = trans.cancel_trans() # if data['action'] == '000040': # 充值撤销 # trans_result = trans.cancel_deposit() # if data['action'] == '000020': # 消费撤销 # trans_result = trans.cancel_payment() # if data['action'] == 'reversal': # 冲正 # trans_result = trans.reversal() if data['action'] == '000110': # 卡启用 trans_result = trans.new_card() if data['action'] == '000090': # 余额查询 trans_result = trans.check_balance() if data['action'] == '000150': # 改有效期 trans_result = trans.change_overdue_date() if data['action'] == '000120': # 换卡 trans_result = trans.change_card() # if data['action'] == 'write_card': # 补磁 * # trans_result = trans.write_card() if data['action'] == '000140': # 卡改密 trans_result = trans.change_password() if data['action'] == '000050': # 积分消费 trans_result = trans.points_payment() # if data['action'] == '000060': # 积分消费撤销 # trans_result = trans.cancel_points_payment() if data['action'] == 'check_points': # 查询积分 trans_result = trans.check_points() if data['action'] == '000070': # 积分充值 trans_result = trans.points_deposit() # if data['action'] == '000080': # 积分充值撤销 # trans_result = trans.cancel_points_deposit() # if data['action'] == 'settlement': # 结算 # trans_result = trans.settlement() # if data['action'] == 'bind_member': # 绑定会员 # trans_result = trans.bind_member() logger.debug(u'交易结果:' + trans_result['result_code']) data = str(trans_result) self.sendLine(data)
def handler_card_trans(self, data): if data: # >>>>>>>>>>>>>> 解密数据 # 接收到的数据格式为 "DES加密的数据" + 终端号 # 解密方式为: # 1.将接收到的数据分为两部分:DES加密的数据和终端号 # 2.去数据库中查询与此终端号对应的DES密钥 # 3.使用DES密钥解密 DES加密的数据 部分 print 'raw_data ->', data print 'len(raw_data) ->', len(data) terminal_no = data[-8:] data = base64.decodestring(data[:-8]) print terminal_no key = get_DES_key(terminal_no) k = des(key, ECB, key, None, PAD_PKCS5) data = k.decrypt(data) # 解密加密的数据 # 转换数据的编码 tmp_data = str(data).replace("'", '"') tmp_data = json.loads(tmp_data) data = {} for key in tmp_data.keys(): data[key.encode('iso8859-1').lower()] = tmp_data[key].encode('iso8859-1') print '========= log for test ========' for k in data.keys(): print k, '\t\t--->', data[k] print '===============================\n\n\n' trans_result = {} # 定义交易结果变量 trans = Trans(data) if data['action'] == 'singin': # 签到 trans_result = trans.signin() if data['action'] == 'payment': # 消费 trans_result = trans.payment() if data['action'] == 'deposit': # 充值 trans_result = trans.deposit() if data['action'] == 'cancel_trans': # 撤销 trans_result = trans.cancel_trans() if data['action'] == 'cancel_deposit': # 充值撤销 trans_result = trans.cancel_deposit() if data['action'] == 'cancel_payment': # 消费撤销 trans_result = trans.cancel_payment() if data['action'] == 'reversal': # 冲正 trans_result = trans.reversal() if data['action'] == 'new_card': # 卡启用 trans_result = trans.new_card() if data['action'] == 'check_balance': # 余额查询 trans_result = trans.check_balance() if data['action'] == 'change_overdue_date': # 改有效期 trans_result = trans.change_overdue_date() if data['action'] == 'change_card': # 换卡 trans_result = trans.change_card() if data['action'] == 'write_card': # 补磁 * trans_result = trans.write_card() if data['action'] == 'change_password': # 卡改密 trans_result = trans.change_password() if data['action'] == 'points_payment': # 积分消费 trans_result = trans.points_payment() if data['action'] == 'cancel_points_payment': # 积分消费撤销 trans_result = trans.cancel_points_payment() if data['action'] == 'check_points': # 查询积分 trans_result = trans.check_points() if data['action'] == 'points_deposit': # 积分充值 trans_result = trans.points_deposit() if data['action'] == 'cancel_points_deposit': # 积分充值撤销 trans_result = trans.cancel_points_deposit() if data['action'] == 'settlement': # 结算 trans_result = trans.settlement() if data['action'] == 'bind_member': # 绑定会员 trans_result = trans.bind_member() ###########返回信息########### print '========= log for test ========' for k in trans_result.keys(): print k, '\t\t<---', trans_result[k] print '===============================\n\n\n' data = str(trans_result) print 'returned data', data self.sendLine(data)