示例#1
0
文件: client.py 项目: ksantr/wallet
    def get_balance(self):
        """Get client wallet balance"""
        url = '{}/balance'.format(self.base_url.rstrip('/ '))
        payload = {'api_key': self.api_key}

        signature = Signature.gen_signature(
                'post', url, json.dumps(payload), self.secret_key)
        headers = {'Signature': signature}

        logger.debug('Get balance request: {} {} {}'.format(
            url, payload, signature))

        try:
            res = requests.post(url, json=payload, headers=headers)
            res.raise_for_status()
        except Exception as e:
            logger.exception(e)
            return 'Get balance error'

        json_res = res.json()
        logger.debug('Get balance response: {}'.format(json_res))

        if json_res['status'] == 'success':
            return json_res['balance']
        else:
            return json_res['message']
示例#2
0
文件: client.py 项目: ksantr/wallet
    def send_money(self, amount, recipient):
        """Send money from wallet"""
        url = '{}/send'.format(self.base_url.rstrip('/ '))

        payload = {'api_key': self.api_key,
                   'amount': amount,
                   'recipient': recipient}

        signature = Signature.gen_signature(
                'post', url, json.dumps(payload), self.secret_key)
        headers = {'Signature': signature}

        logger.debug('Send money request: {} {} {}'.format(
            url, payload, signature))

        try:
            res = requests.post(url, json=payload, headers=headers)
            res.raise_for_status()
        except Exception as e:
            logger.exception(e)
            return 'Send money error'

        json_res = res.json()
        logger.debug('Send money response: {}'.format(json_res))

        if json_res['status'] == 'success':
            return 'Success'
        else:
            return json_res['message']
示例#3
0
    def func_wrapper(*args, **kwargs):
        # Set sql session
        sql = SQLAlchemy()
        session = sql.init_db(Config.SQLALCHEMY_DATABASE_URI)()

        data = request.get_json()

        api_key = data.get('api_key')
        if not api_key:
            abort(400, 'Api-key error')

        try:
            wallet = session.query(Wallets).filter_by(api_key=api_key).one()
        except NoResultFound:
            abort(400, 'Wallet not found')

        signature = Signature.gen_signature(method=request.method,
                                            url=request.url,
                                            data=request.data.decode(),
                                            key=wallet.secret_key)

        if signature != request.headers.get('Signature'):
            abort(400, 'Signature error')
        return func(*args, **kwargs)