LoginSignup
0

More than 5 years have passed since last update.

NanoWalletで読み込めるQRコードを作成する

Last updated at Posted at 2018-03-06

pythonを使ってNanoWalletで読み込めるQRコードを作ろうとしたら少し詰まったので備忘録として残しておきます.
pythonでQRコードを作成することができるAPIを探してみると

  • qrcode
  • pyqrcode
  • pygooglechart

の3種類が見つかりました.
一番簡単そうなのはpygooglechartかなと思ったのですが
公式で非推奨ということなので泣く泣く諦め今回はqrcodeを使用することにしました.

とりあえず必要なqrcodeをインストールします.

pip install qrcode

下準備は以上になります.
後はただQRコードを作成するだけなのですが,どうもNanoWalletで使わている言語がシングルクォーテーションとダブルクォーテーションで意味が違うみたいで読み込んでくれない(phpかな...)
pythonの場合ダブルクォーテーションで囲んでもQRコードにするとシングルクォーテーションになるみたいなのでここで少しつまりました...
あとはqrcode.make("ここにデータを記載")だけでもQRコードは作成できるのですがこれだと上手く読み込めないみたいです.

シンプルに読み込めるQRコードを作成するコードは以下のようになります

nem_qr.py
#-*- codong: utf-8 -*- 
import qrcode

address = "walletのアドレス"
mosaic = 1000000
send_amount = 100 * mosaic 
message = "test"
wallet_name = "test"

if __name__ == '__main__':
    qrdata = '{"v":2,"type":2,"data":{"addr":"' + address + '","amount":' + str(send_amount) + ',"msg":"' + message + '","name":"' + wallet_name + '"}}'
    #qrdata = '{"v":2,"type":2,"data":{"addr":"walletのアドレス","amount":5000000,"msg":"test","name":"test"}}'

    QR = qrcode.QRCode(
            version=2,
            error_correction=qrcode.constants.ERROR_CORRECT_L,
            box_size=6,
            border=4,
            )

    QR.add_data(qrdata)
    QR.make(fit=True)
    img = QR.make_image(fill_color="white", back_color="black")
    img.save('qr.bmp')

1Nemを贈りたい場合は1000000倍しないとダメみたいです.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0