
暗号通貨の支払い方法により、販売者は購入者から資金を受け取りやすくなり、従来の銀行支払いによる厳しい規制を回避できます。ある意味、社内で構築された暗号通貨支払い方法を使用することで、長期的にはコストを節約し、ビジネスの拡大を促進することもできます。
この記事では、Python、Infura、Web3 モジュールを使用して Web サイト上で暗号通貨支払いチェックアウトを開発する方法を簡単に説明します。このチュートリアルが終わるまでに、これをウェブに追加し、購入者がチェックアウトして暗号ネットワーク経由で資金を送金できるようにすることができます。
目次: Python、Infura、Metamask、および Web3 を使用して Flask アプリに暗号通貨支払い方法を追加する
- トランザクションの作成に必要な引数と値
- Ethereum ブロックチェーンに接続するための Metamask と Infura API ノード
- トランザクションに署名して送信する
- フラスコルート
- Infura、Metamask、Web3 を使用した暗号通貨支払い方法作成の完全な Python スクリプト
- よくある質問
トランザクションの作成に必要な引数と値

基本的に、トランザクションには必須の引数と値がいくつかあり、データ形式はディクショナリにあります。基本的な公式は次のとおりです。
transaction = { "gasPrice" : gasPrice , "chainId" : int ( chain_id ), "from" : address , "to" : receiverAddress , "value" : valuetoSend , "nonce" : nonce } gas = w3 . eth . estimate_gas ( transaction ) transaction [ 'gas' ] = gas
- 送信者のウォレットアドレス: 購入者は、商品をチェックアウトするときに販売者のウェブサイトにサインインして、自分のアドレスを追加します。
- 受信者のウォレットアドレス (デフォルトでは Flask .env に追加される販売アカウントです)
- お支払い金額
- ガス価格: トランザクションあたりの処理価格
- Chaine ID: 接続しているブロックチェーンのノードID
- Nonce: 送信者の公開ウォレット ID からのトランザクション数
- ガス代の合計
一部の引数値は次のように取得できます。
- ガス価格: w3.eth.gas_price
- チェーンID:https: //chainlist.org/
- ナンス: w3.eth.getTransactionCount(購入者のウォレットアドレス)
- ガス価格: w3.eth.gas_price
- ガスの総コスト:
gas = w3 . eth . estimate_gas ( transaction ) transaction2 [ 'gas' ] = gas
Ethereum ブロックチェーンに接続するためのMetamask と Infura API ノード
Infura API 接続とメタマスクの使用手順については、以前別の記事で共有しました。詳細については、この記事を確認してください。
https://www.easy2digital.com/web3/use-infura-and-metamask-in-python-scripts-to-deploy-web3-on-ethereum/
Flask アプリに追加された暗号通貨支払い方法では、このセクションをスクリプトのグローバル レベルに追加して、各ローカル関数で使用できるように共有できます。次のようにサンプルします。
# -------------- Connect ETH network using a node: Infura -------------- ##w3 = Web3 ( Web3 . HTTPProvider ( "Your API endpoint" ))gasPrice = w3 . eth . gas_pricechain_id = your chain IDprivate_key = os . environ . get ( 'PRIVATE_KEY2' )def accountBalance ( address ): accountBalance = w3 . eth . get_balance ( address ) return accountBalance
トランザクションに署名して送信する
これでネットワーク接続とトランザクションモジュールの準備が整いました。購入者からのチェックアウトのテストを開始できます。
signed_txn = w3 . eth . account . sign_transaction ( transaction2 , private_key = 'buyer Metamask sign-in authentication' ) tx_hash = w3 . eth . send_raw_transaction ( signed_txn .rawTransaction) tx_receipt = w3 . eth . wait_for_transaction_receipt ( tx_hash)
フラスコルート
最後になりましたが、この関数を Flask メイン アプリのルートに接続する必要があります。コードサンプルは次のとおりです。
@ app .route ( '/' , methods =['GET' , 'POST' ])def web3Transaction123 (): if request . args . get ( 'SenderAddress' ) and request . args . get ( 'sendingValue' ): prompt = request . args . get ( 'SenderAddress' ) prompt3 = request . args . get ( 'sendingValue' ) if request . args . get ( 'user_signed' ): response2 = web3Transaction ( prompt , prompt3 , request . args . get ( 'user_signed' )) flash ( "Done! Thank you for your payment" ) return render_template ( 'test.html' , response22 = response2 ) return render_template ( 'test.html' )
Metamasサインインによるユーザー認証については、次回の記事で紹介します。
Infura、Metamask、Web3 を使用した暗号通貨支払い方法作成の完全な Python スクリプト
Web3.0 チュートリアル 8 – Infura、Metamask、およびWeb3 を使用した暗号通貨支払い方法の作成に興味がある場合は、 「Web3.0 チュートリアル 8」というメッセージを追加してニュースレターを購読してください。 。スクリプトはすぐにあなたのメールボックスに送信されます。
「Web3.0 チュートリアル 8 – Infura、Metamask、およびWeb3 を使用した暗号通貨支払い方法の作成」を楽しんで読んでいただければ幸いです。もしそうなら、以下にリストされているいずれかの方法で私たちをサポートしてください。それは常に私たちのチャンネルに役立ちます。
- PayPal を通じて私のチャンネルをサポートし、寄付してください ( paypal.me/Easy2digital )
- 私のチャンネルを購読し、 Easy2Digital Youtube チャンネルの通知ベルをオンにしてください。
- Easy2Digital Facebook ページをフォローして「いいね!」してください
- ハッシュタグ #easy2digital を付けて記事をソーシャル ネットワークで共有してください
- Easy2Digital の最新記事、ビデオ、割引コードを受け取るには、毎週のニュースレターに登録してください。
- Patreon を通じて月額メンバーシップに登録すると、限定特典をお楽しみいただけます ( www.patreon.com/louisludigital )