国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Mixin Network的Go語(yǔ)言比特幣開發(fā)教程 : 用 Mixin Messenger 機(jī)器

Kaede / 3619人閱讀

摘要:基于的語(yǔ)言比特幣開發(fā)教程用機(jī)器人接受和發(fā)送比特幣在上一篇教程中我們創(chuàng)建了自動(dòng)回復(fù)消息的機(jī)器人當(dāng)用戶發(fā)送消息時(shí),機(jī)器人會(huì)自動(dòng)回復(fù)同一條消息按本篇教程后學(xué)習(xí)后完成后,你的機(jī)器人將會(huì)接受用戶發(fā)送過來(lái)的加密貨幣,然后立即轉(zhuǎn)回用戶。

基于Mixin Network的Go語(yǔ)言比特幣開發(fā)教程 : 用 Mixin Messenger 機(jī)器人接受和發(fā)送比特幣


在 上一篇教程中, 我們創(chuàng)建了自動(dòng)回復(fù)消息的機(jī)器人,當(dāng)用戶發(fā)送消息"Hello,World!"時(shí),機(jī)器人會(huì)自動(dòng)回復(fù)同一條消息!

按本篇教程后學(xué)習(xí)后完成后,你的機(jī)器人將會(huì)接受用戶發(fā)送過來(lái)的加密貨幣,然后立即轉(zhuǎn)回用戶。
完整代碼如下:

main.go
fpackage main

import (
    "context"
    "encoding/base64"
    "encoding/json"
    "log"
    "github.com/MooooonStar/mixin-sdk-go/messenger"
    mixin "github.com/MooooonStar/mixin-sdk-go/network"
)

type Listener struct {
    *messenger.Messenger
}

// interface to implement if you want to handle the message
func (l *Listener) OnMessage(ctx context.Context, msg messenger.MessageView, userId string) error {
    data, err := base64.StdEncoding.DecodeString(msg.Data)
    if err != nil {
        return err
    }
    if msg.Category == "SYSTEM_ACCOUNT_SNAPSHOT" {
        var transfer messenger.TransferView
        if err := json.Unmarshal(data, &transfer); err != nil {
            return err
        }
        log.Println("I got a coin: ", transfer.Amount)
        mixin.Transfer(msg.UserId,transfer.Amount,transfer.AssetId,"",messenger.UuidNewV4().String(),
                                    PinCode,PinToken,UserId,SessionId,PrivateKey)
        return nil
        // return l.SendPlainText(ctx, msg.ConversationId, msg.UserId, string(data))
    } else if msg.Category == "PLAIN_TEXT" {
        log.Printf("I got a message, it said: %s", string(data))
        if string(data) == "g" {
            payLinkEOS := "https://mixin.one/pay?recipient=" +
                             msg.UserId  + "&asset=" +
                             "6cfe566e-4aad-470b-8c9a-2fd35b49c68d"   +
                             "&amount=" + "0.1" +
                             "&trace="  + messenger.UuidNewV4().String() +
                             "&memo="
          payLinkBTC := "https://mixin.one/pay?recipient=" +
                             msg.UserId  + "&asset=" +
                             "c6d0c728-2624-429b-8e0d-d9d19b6592fa"   +
                             "&amount=" + "0.001" +
                             "&trace="  + messenger.UuidNewV4().String() +
                             "&memo="
          log.Println(payLinkBTC)
            BtnEOS := messenger.Button{Label: "Pay EOS 0.1", Color: "#0080FF", Action: payLinkEOS}
            BtnBTC := messenger.Button{Label: "Pay BTC 0.0001", Color: "#00FF80", Action: payLinkBTC}
            if err := l.SendAppButtons(ctx, msg.ConversationId, msg.UserId, BtnEOS, BtnBTC); err != nil {
                return err
            }
            return nil
        } else if string(data) == "a"  {
            card := messenger.AppCard{Title: "Pay BTC 0.0001", Description: "topay", Action: "http://www.google.cn",
                IconUrl: "https://images.mixin.one/HvYGJsV5TGeZ-X9Ek3FEQohQZ3fE9LBEBGcOcn4c4BNHovP4fW4YB97Dg5LcXoQ1hUjMEgjbl1DPlKg1TW7kK6XP=s128"}
            if err := l.SendAppCard(ctx, msg.ConversationId, msg.UserId, card); err != nil {
                return err
            }
            return nil
        } else if string(data) == "r" {
            mixin.Transfer(msg.UserId,"0.0001","c6d0c728-2624-429b-8e0d-d9d19b6592fa","",messenger.UuidNewV4().String(),
                                        PinCode,PinToken,UserId,SessionId,PrivateKey)
            return nil
        } else { return l.SendPlainText(ctx, msg.ConversationId, msg.UserId, string(data)) }
    } else {
        log.Println("Unknown message!", msg.Category)
        return err
    }
}
const (
    UserId    = "21042518-85c7-4903-bb19-f311813d1f51"
    PinCode   = "911424"
    SessionId = "4267b63d-3daa-449e-bc13-970aa0357776"
    PinToken  = "gUUxpm3fPRVkKZNwA/gk10SHHDtR8LmxO+N6KbsZ/jymmwwVitUHKgLbk1NISdN8jBvsYJgF/5hbkxNnCJER5XAZ0Y35gsAxBOgcFN8otsV6F0FAm5TnWN8YYCqeFnXYJnqmI30IXJTAgMhliLj7iZsvyY/3htaHUUuN5pQ5F5s="
    //please delele the blank of PrivateKey the before each line
    PrivateKey = `-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCDXiWJRLe9BzPtXmcVe6acaFTY9Ogb4Hc2VHFjKFsp7QRVCytx
3KC/LRojTFViwwExaANTZQ6ectwpAxIvzeYeHDZCXCh6JRFIYK/ZuREmYPcPQEWD
s92Tv/4XTAdTH8l9UJ4VQY4zwqYMak237N9xEvowT0eR8lpeJG0jAjN97QIDAQAB
AoGADvORLB1hGCeQtmxvKRfIr7aEKak+HaYfi1RzD0kRjyUFwDQkPrJQrVGRzwCq
GzJ8mUXwUvaGgmwqOJS75ir2DL8KPz7UfgQnSsHDUwKqUzULgW6nd/3OdDTYWWaN
cDjbkEpsVchOpcdkywvZhhyGXszpM20Vr8emlBcFUOTfpTUCQQDVVjkeMcpRsImV
U3tPYyiuqADhBTcgPBb+Ownk/87jyKF1CZOPvJAebNmpfJP0RMxUVvT4B9/U/yxZ
WNLhLtCXAkEAnaOEuefUxGdE8/55dUTEb7xrr22mNqykJaax3zFK+hSFBrM3gUY5
fEETtHnl4gEdX4jCPybRVc1JSFY/GWoyGwJBAKoLti95JHkErEXYavuWYEEHLNwv
mgcZnoI6cOKVfEVYEEoHvhTeCkoWHVDZOd2EURIQ1eY18JYIZ0M4Z66R8DUCQCsK
iKTR3dA6eiM8qiEQw6nWgniFscpf3PnCx/Iu3U/m5mNr743GhM+eXSj7136b209I
YfEoQiPxRz8O/W+NBV0CQQDVPxqJlFD34MC9aQN42l3NV1hDsl1+nSkWkXSyhhNR
MpobtV1a7IgJGyt5HxBzgNlBNOayICRf0rRjvCdw6aTP
-----END RSA PRIVATE KEY-----`
)


func main() {
    ctx := context.Background()
    m := messenger.NewMessenger(UserId, SessionId, PrivateKey)
    l := &Listener{m}
    go m.Run(ctx, l)
    select {}
}
你好, 比特幣!

在項(xiàng)目目錄下編譯并執(zhí)行

cd mixin_labs-go-bot
go build
./mixin_labs-go-bot

開發(fā)者可以通過消息面板,給機(jī)器人轉(zhuǎn)比特幣,當(dāng)機(jī)器人收到比特幣后,馬上返還給用戶!

事實(shí)上,用戶可以發(fā)送任意的幣種給機(jī)器人,它都能馬上返還!

源代碼解釋
if msg.Category == "SYSTEM_ACCOUNT_SNAPSHOT" {
  var transfer messenger.TransferView
  if err := json.Unmarshal(data, &transfer); err != nil {
    return err
  }
  log.Println("I got a coin: ", transfer.Amount)
  mixin.Transfer(msg.UserId,transfer.Amount,transfer.AssetId,"",messenger.UuidNewV4().String(),
                PinCode,PinToken,UserId,SessionId,PrivateKey)
  return nil
  // return l.SendPlainText(ctx, msg.ConversationId, msg.UserId, string(data))
}

調(diào)用SDK的 mixin.Transfer 將幣返還用戶!

高級(jí)用法 APP_BUTTON_GROUP

在一些應(yīng)用場(chǎng)景,比如:有一個(gè)交易所想提供換幣服務(wù),將比特幣換成以太坊,EOS,比特幣現(xiàn)金等,
你想顯示給用戶一組按鈕,它們分別代表不同的幣與不同的數(shù)量,APP_BUTTON_GROUP可以幫你做到這一點(diǎn).

payLinkEOS := "https://mixin.one/pay?recipient=" +
         msg.UserId  + "&asset=" +
         "6cfe566e-4aad-470b-8c9a-2fd35b49c68d"   +
         "&amount=" + "0.1" +
         "&trace="  + messenger.UuidNewV4().String() +
         "&memo="
payLinkBTC := "https://mixin.one/pay?recipient=" +
         msg.UserId  + "&asset=" +
         "c6d0c728-2624-429b-8e0d-d9d19b6592fa"   +
         "&amount=" + "0.001" +
         "&trace="  + messenger.UuidNewV4().String() +
         "&memo="
log.Println(payLinkBTC)
BtnEOS := messenger.Button{Label: "Pay EOS 0.1", Color: "#0080FF", Action: payLinkEOS}
BtnBTC := messenger.Button{Label: "Pay BTC 0.001", Color: "#00FF80", Action: payLinkBTC}
if err := l.SendAppButtons(ctx, msg.ConversationId, msg.UserId, BtnEOS, BtnBTC); err != nil {
  return err
}

這里演示給用戶BTC與EOS兩種,你還可以增加更多的按鈕.

APP_CARD

如果你覺得一組按鈕太單調(diào)了,可以試一下APP_CARD,它提供一個(gè)圖標(biāo)的鏈接

card := messenger.AppCard{Title: "CNB", Description: "Chui Niu Bi", Action: "http://www.google.cn",
  IconUrl: "https://images.mixin.one/0sQY63dDMkWTURkJVjowWY6Le4ICjAFuu3ANVyZA4uI3UdkbuOT5fjJUT82ArNYmZvVcxDXyNjxoOv0TAYbQTNKS=s128"}
if err := l.SendAppCard(ctx, msg.ConversationId, msg.UserId, card); err != nil {
  return err
}

Full source code

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/24595.html

相關(guān)文章

  • 基于Mixin NetworkGo語(yǔ)言比特開發(fā)教程 : 創(chuàng)建一個(gè)比特錢包

    摘要:帳號(hào)之間的比特幣支付通過,我們可以先轉(zhuǎn)比特幣給機(jī)器人,然后讓機(jī)器人轉(zhuǎn)幣給新用戶。下面的代碼,可以讀取比特幣錢包余額讀取的余額,來(lái)確認(rèn)比特幣是不是轉(zhuǎn)成功了注意是新用戶的。 showImg(https://github.com/wenewzhang/mixin_labs-go-bot/raw/master/Bitcoin_go.jpg);我們已經(jīng)創(chuàng)建過一個(gè)回復(fù)消息的機(jī)器人和一個(gè)能自動(dòng)支付比...

    legendaryedu 評(píng)論0 收藏0
  • Go語(yǔ)言買賣比特

    摘要:比特幣的到帳時(shí)間是個(gè)區(qū)塊的高度,約分鐘。請(qǐng)注意,比特幣與的地址是一樣的。 showImg(https://segmentfault.com/img/remote/1460000018378805?w=1200&h=659); 方案一: 通過ExinCore API進(jìn)行幣幣交易 Exincore 提供了基于Mixin Network的幣幣交易API. 你可以支付USDT給ExinCore...

    AlphaWallet 評(píng)論0 收藏0
  • 一塊聽聽:Mixin 主網(wǎng)上線語(yǔ)音直播文字稿

    摘要:本文是在一塊聽聽上的語(yǔ)音直播的文字精簡(jiǎn)版。主網(wǎng)上線的細(xì)節(jié)主網(wǎng)在北京時(shí)間年月日早上點(diǎn)正式完成了上線。目前主網(wǎng)上線工作已經(jīng)完成,正在把測(cè)試網(wǎng)上的資產(chǎn)遷移到主網(wǎng)上。主網(wǎng)上線意味著什么真的是一個(gè)去中心化的區(qū)塊鏈項(xiàng)目了。主網(wǎng)上線對(duì)來(lái)說(shuō)只是一個(gè)起點(diǎn)。 本文是在一塊聽聽上的語(yǔ)音直播的文字精簡(jiǎn)版。 Mixin Network的成績(jī),主網(wǎng)和展望 大家好,我是Mixin Network 的李林。非常高興能...

    nanchen2251 評(píng)論0 收藏0
  • 戶只有一部手機(jī),怎么保護(hù)私鑰—— mixin如何實(shí)現(xiàn)資產(chǎn)安全

    摘要:比特幣白皮書都發(fā)布了年,這一種資產(chǎn)保護(hù)模式一直延續(xù)到現(xiàn)在。如果考慮到一個(gè)人除了比特幣以外如果還擁有其他數(shù)字資產(chǎn),一個(gè)資產(chǎn)一個(gè)私鑰,那么私鑰的管理難度就更大了。以用戶在網(wǎng)絡(luò)存儲(chǔ)比特幣為例。用戶存入的比特幣只有經(jīng)過節(jié)點(diǎn)批準(zhǔn)才能提走。 **Mixin開發(fā)者大賽正在進(jìn)行中,javascript, python, ruby, go程序員都可以來(lái)贏30萬(wàn)大獎(jiǎng)。 大賽地址活動(dòng)地址 mixin.one...

    molyzzx 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<