资讯专栏INFORMATION COLUMN

Python 比特币教程之二: 机器人收发比特币

cheukyin / 2945人阅读

摘要:在上一篇教程比特币教程之一创建机器人中我们创建了自动回复消息的机器人当用户发送消息时,机器人会自动回复同一条消息。第二课机器人接受比特币并立即退还用户按本篇教程后学习后完成后,你的机器人将会接受用户发送过来的加密货币,然后立即转回用户。


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

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

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

app.py
from mixin_ws_api import MIXIN_WS_API
from mixin_api import MIXIN_API
import mixin_config

import json
import time
from io import BytesIO
import base64
import gzip

try:
    import thread
except ImportError:
    import _thread as thread


def 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-bot
source ./bin/activate
(mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$ python app.py
ws open
-------json object begin---------
{"id": "fd6ce766-331a-11e9-92a9-20c9d08850cd", "action": "LIST_PENDING_MESSAGES"}
-------json object end---------

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

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

源代码解释
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!

Mixin Network的开发资源汇编

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43237.html

相关文章

  • Python 比特教程之二器人收发比特

    摘要:在上一篇教程比特币教程之一创建机器人中我们创建了自动回复消息的机器人当用户发送消息时,机器人会自动回复同一条消息。第二课机器人接受比特币并立即退还用户按本篇教程后学习后完成后,你的机器人将会接受用户发送过来的加密货币,然后立即转回用户。 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);在上一篇教程Python 比特币...

    Seay 评论0 收藏0
  • Python 开发比特教程汇总

    摘要:创建一个接受消息的机器人机器人接受比特币并立即退还用户创建比特币钱包其他编程语言比特币开发教程如下比特币开发教程比特币开发教程比特币开发教程比特币开发教程比特币开发教程开发者资源汇总 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);创建一个接受消息的机器人机器人接受比特币并立即退还用户创建比特币钱包 其他编程语言比特...

    weakish 评论0 收藏0
  • Python 开发比特教程汇总

    摘要:创建一个接受消息的机器人机器人接受比特币并立即退还用户创建比特币钱包其他编程语言比特币开发教程如下比特币开发教程比特币开发教程比特币开发教程比特币开发教程比特币开发教程开发者资源汇总 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);创建一个接受消息的机器人机器人接受比特币并立即退还用户创建比特币钱包 其他编程语言比特...

    whlong 评论0 收藏0
  • Python 比特教程之三: 创建比特钱包,读余额,极速免费转账,标准转账

    摘要:下面的代码,可以读取比特币钱包余额网内免手续费的,并且即时确认任何币在内部的交易,都是无手续费的,并且立刻到账。 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);我们已经创建过一个回复消息的机器人和一个能自动支付比特币的机器人. 通过本教程的学习,你可以学到如下内容 如何创建一个比特币钱包. 如何读取比特币钱包的余...

    blastz 评论0 收藏0
  • Python 比特教程之三: 创建比特钱包,读余额,极速免费转账,标准转账

    摘要:下面的代码,可以读取比特币钱包余额网内免手续费的,并且即时确认任何币在内部的交易,都是无手续费的,并且立刻到账。 showImg(https://segmentfault.com/img/bVboFVZ?w=1200&h=659);我们已经创建过一个回复消息的机器人和一个能自动支付比特币的机器人. 通过本教程的学习,你可以学到如下内容 如何创建一个比特币钱包. 如何读取比特币钱包的余...

    willin 评论0 收藏0

发表评论

0条评论

cheukyin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<