博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 比特币教程之二: 机器人收发比特币
阅读量:6366 次
发布时间:2019-06-23

本文共 2708 字,大约阅读时间需要 9 分钟。

图片描述

在上一篇教程中, 我们创建了自动回复消息的机器人,当用户发送消息"Hello,World!"时,机器人会自动回复同一条消息。

第二课: 机器人接受比特币并立即退还用户

按本篇教程后学习后完成后,你的机器人将会接受用户发送过来的加密货币,然后立即转回用户。

完整代码如下:

app.py
from mixin_ws_api import MIXIN_WS_APIfrom mixin_api import MIXIN_APIimport mixin_configimport jsonimport timefrom io import BytesIOimport base64import gziptry:    import threadexcept ImportError:    import _thread as threaddef on_message(ws, message):    inbuffer = BytesIO(message)    f = gzip.GzipFile(mode="rb", fileobj=inbuffer)    rdata_injson = f.read()    rdata_obj = json.loads(rdata_injson)    print("-------json object begin---------")    print(rdata_obj)    print("-------json object end---------")    action = rdata_obj["action"]    if rdata_obj["data"] is not None:        print("data in message:",rdata_obj["data"])    if rdata_obj["data"] is not None and rdata_obj["data"]["category"] is not None:        print(rdata_obj["data"]["category"])    if action == "CREATE_MESSAGE":        data = rdata_obj["data"]        msgid = data["message_id"]        typeindata = data["type"]        categoryindata = data["category"]        userId = data["user_id"]        conversationId = data["conversation_id"]        dataindata = data["data"]        created_at = data["created_at"]        updated_at = data["updated_at"]        realData = base64.b64decode(dataindata)        MIXIN_WS_API.replayMessage(ws, msgid)        print('userId', userId)        print("created_at",created_at)        if categoryindata == "PLAIN_TEXT":            realData = realData.decode('utf-8')            print("dataindata",realData)            MIXIN_WS_API.sendUserText(ws, conversationId, userId, realData)        elif categoryindata == "SYSTEM_ACCOUNT_SNAPSHOT":            rdJs = json.loads(realData)            if ( float(rdJs["amount"]) > 0 ):                mixin_api.transferTo(userId, rdJs["asset_id"], rdJs["amount"], "")if __name__ == "__main__":    mixin_api = MIXIN_API(mixin_config)    mixin_ws = MIXIN_WS_API(on_message=on_message)    mixin_ws.run()

Hello Bitcoin!

在项目目录下,执行 python app.py

cd mixin_labs-python-botsource ./bin/activate(mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$ python app.pyws open-------json object begin---------{'id': 'fd6ce766-331a-11e9-92a9-20c9d08850cd', 'action': 'LIST_PENDING_MESSAGES'}-------json object end---------

开发者可以通过消息面板,给机器人转比特币,当机器人收到比特币后,马上返还给用户!

transfer

事实上,用户可以发送任意的币种给机器人,它都能马上返还!

pay-link

源代码解释

elif categoryindata == "SYSTEM_ACCOUNT_SNAPSHOT":    rdJs = json.loads(realData)    if ( float(rdJs["amount"]) > 0 ):        mixin_api.transferTo(userId, rdJs["asset_id"], rdJs["amount"], "")

如果机器人收到币,rdJs["amount"] 大于零;如果机器人支付币给用户,接收到的消息是一样的,唯一不同的是,rdJs["amount"]是一个负数.

最后一步,调用SDK的 mixin_api.transferTo 将币返还用户!

高级用法

coming soon!

转载地址:http://hnrma.baihongyu.com/

你可能感兴趣的文章
Myeclipse快捷键集合
查看>>
linux安装ftp
查看>>
[转]解读ASP.NET 5 & MVC6系列(8):Session与Caching
查看>>
js正则匹配中文
查看>>
中介者模式(Mediator)
查看>>
Entity Framework 数据生成选项DatabaseGenerated
查看>>
jquery 兼容的滚轮事件
查看>>
模板小例子
查看>>
告诉你html5比普通html多了哪些东西?
查看>>
十倍交叉验证 10-fold cross-validation
查看>>
Windows无法删除文件 提示找不到该项目怎么办
查看>>
js 数组
查看>>
R语言中的字符串处理函数
查看>>
平方和公式
查看>>
【Unity游戏开发】浅谈 NGUI 中的 UIRoot、UIPanel、UICamera 组件
查看>>
内存模型
查看>>
table边框设置
查看>>
IOS开发之实现App消息推送(最新)
查看>>
C++ 资源管理之 RAII
查看>>
UVA11234 Expressions
查看>>