Exemple #1
0
    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
Exemple #2
0
    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'无此卡号')
Exemple #3
0
 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'无此卡号')
Exemple #4
0
    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