Solana Pay 101 - Part 2

更新於 發佈於 閱讀時間約 4 分鐘

Gentle Introduction to Solana Pay API

在開始寫程式之前我們需要準備兩個錢包地址用於模擬收發代幣,這邊我用的是phantom wallet。接下來的模擬會在Solana devnet(測試網路)上進行,可以前往wallet中的 設定>開發人員設定>測試網模式 開啟選項。


要匯入模擬用的Solana代幣可以在網路上尋找 Solana faucet

Dependencies

Solana Pay API 都是基於 js/ts。我們先下載需要用到的套件:

npm install @solana/pay bignumber.js @solana/web3.js

預計使用到的import:

import { PublicKey, Keypair, Connection, clusterApiUrl } from "@solana/web3.js";
import { encodeURL, createQR, findReference } from '@solana/pay';
import BigNumber from 'bignumber.js';


Transfer Flow

web app to mobile app transfer flow

web app to mobile app transfer flow

這個是用手機錢包在網站上進行交易的流程圖,其他的交易模式可以參考官方文檔內容。整個交易過程中商家不會知道他在跟誰交易,所以最後會需要一個搜尋並確認有收到款項的動作,透過的方法就是在transfer request url中的reference field留下一個public key,細節可以參考下一段的request url介紹。


基本上一筆Solana Pay的交易內容可以被encode成一個Solana Pay transfer request URL, 格式如下:

solana:<recipient>
?amount=<amount>
&spl-token=<spl-token>
&reference=<reference>
&label=<label>
&message=<message>
&memo=<memo>

這個url可以被包成一個qrcode或是nfc tag,且不需要靠任何的server運作,只要用錢包掃了qrcode交易就可以直接進行。以下針對幾個特別的fields做介紹:

  • recipient: required, 要收錢的錢包地址
  • spl-token: optional, 如果想要以SOL以外的代幣交易(如USDC),需填入spl-token的base58 pulbic key
  • reference: optional, 需為base58 encoding,可以用來當作交易識別來確認交易成功。
raw-image

實作

透過@solana/pay 提供的api可以容易的將上述種種資訊包裝成request url再包成qrcode。(p.s.如果amount留空則會讓使用者自行輸入支付金額


確認交易成功

在成功進行交易後,如上面所述商家需確認有收到款項。這邊我實作了一個簡易的polling,每五秒透過前面reference生成的public key和@solana/web3.js所提供的 findReference()API來檢查等待中的transaction是否成功被放到區塊鏈上(交易成功)。在第二張截圖中可以看到

raw-image
raw-image

我也可以用這個signature直接在solscan的devnet上找到這筆交易


下面影片是將Solana Pay 整合到亞馬遜網路商店購物結帳流程的demo。由於phantom錢包沒有提供USDC測試,後面實際轉帳的流程我改為在devnet上轉0.1SOL代替。

不用在結帳的時候到處翻找你的信用卡,不再需要麻煩的信用卡資訊填寫,敏感資料因商家保管不當/被駭而外流的機率直接消失,跟LINE Pay一樣方便更無須擔心海外消費不支援,實際感受一次是不是覺得超級方便的呢?

以上就是本次介紹,其他實作如空投、Solana Pay tx request、Handle Transfer Request as Wallet Provider等等,礙於篇幅不再贅述。希望這篇文章能讓你對Solana Pay有初步的認識~


API文件參考:

  • https://docs.solanapay.com/api/core
  • https://docs.solanapay.com

文中範例程式碼:




留言
avatar-img
留言分享你的想法!
avatar-img
ppe ha的沙龍
4會員
7內容數
ppe ha的沙龍的其他內容
2024/08/10
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
2024/08/10
前言 本篇要用 Token-2022 和 solana cli 來鑄造一個新的代幣叫做TYC。 如前篇所述,Token-2022 與 Spl Token 是不同的 Program,所以在呼叫的時候要特別註明以示明區別。 Token-2022 Program ID 地址: TokenzQdBNb
Thumbnail
2024/08/07
前兩篇講了SPL Token與Account Model,現在要正式介紹token extension。 Token Extension Program(以下簡稱TEP) 原名 Token 2022,是一個基於原本Token Prgram(以下簡稱TP)的擴充版本。TEP被部署到的地
Thumbnail
2024/08/07
前兩篇講了SPL Token與Account Model,現在要正式介紹token extension。 Token Extension Program(以下簡稱TEP) 原名 Token 2022,是一個基於原本Token Prgram(以下簡稱TP)的擴充版本。TEP被部署到的地
Thumbnail
2024/08/05
CPI 全名叫做 Cross Program Invocation,它可以讓Solana的program直接呼叫另一個Program中的instruction,這個功能可以讓程式有更高的可組合性。可以把CPI想像成一個API在被呼叫的時候又去呼叫另外一個API。 圖示如下: 在Token 202
Thumbnail
2024/08/05
CPI 全名叫做 Cross Program Invocation,它可以讓Solana的program直接呼叫另一個Program中的instruction,這個功能可以讓程式有更高的可組合性。可以把CPI想像成一個API在被呼叫的時候又去呼叫另外一個API。 圖示如下: 在Token 202
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
Thumbnail
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
Thumbnail
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
Thumbnail
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
上一篇提到要在Solana上鑄造新的token需要使用到token program,功能較為陽春。隨著各種新需求的增加同時兼顧安全性的目的,一個新的token program - token 2022 (另名token extension)被開發出來,發佈在一個新的地址上。 Token 2022在
Thumbnail
SPL 是 Solana Program Library的簡稱,是一個用來在Solana上創造fungible/non-fungible token的工具,內含多個Program Account。 有別於以往在Ethereum上,每當想創造新的token就需要寫一個智能合約,SPL有點像是API的
Thumbnail
SPL 是 Solana Program Library的簡稱,是一個用來在Solana上創造fungible/non-fungible token的工具,內含多個Program Account。 有別於以往在Ethereum上,每當想創造新的token就需要寫一個智能合約,SPL有點像是API的
Thumbnail
This is 就這樣栽進Web 3.0 &Economic 的路易斯啦!!!! 與Solana Payment最後的戰役,阿不是...是最後篇章! 本次要說明的是 使用 Solana Pay 對商業用戶和消費者的『好處』有哪些呢? 以『共同好處』來說,總共有四點。
Thumbnail
This is 就這樣栽進Web 3.0 &Economic 的路易斯啦!!!! 與Solana Payment最後的戰役,阿不是...是最後篇章! 本次要說明的是 使用 Solana Pay 對商業用戶和消費者的『好處』有哪些呢? 以『共同好處』來說,總共有四點。
Thumbnail
This is 就這樣栽進Web 3.0 &Economic 的路易斯啦!!!! 秉持著Simple Is Good,「Solana 創研松」徵文策展,我參上! 開始正題之前,先介紹 Solana的基本概念,Let's Go!!! Solana 是一個區塊鏈平台,旨在提供高速度和低成本的交易
Thumbnail
This is 就這樣栽進Web 3.0 &Economic 的路易斯啦!!!! 秉持著Simple Is Good,「Solana 創研松」徵文策展,我參上! 開始正題之前,先介紹 Solana的基本概念,Let's Go!!! Solana 是一個區塊鏈平台,旨在提供高速度和低成本的交易
Thumbnail
簡介如何使用Solana Pay API整合商店頁面進行支付
Thumbnail
簡介如何使用Solana Pay API整合商店頁面進行支付
Thumbnail
Solana Pay是基於Solana區塊鏈開發的支付協議,允許使用加密貨幣進行支付。文章介紹了Solana Pay的優勢和功能,下一篇文章將簡單介紹其API的機制與實作。
Thumbnail
Solana Pay是基於Solana區塊鏈開發的支付協議,允許使用加密貨幣進行支付。文章介紹了Solana Pay的優勢和功能,下一篇文章將簡單介紹其API的機制與實作。
Thumbnail
幣圈新聞焦點: Solana 好消息!Shopify 將接受 USDC 支付 幣安美國新合作夥伴 MoonPay,美元入金指定買 USDT 老牌交易所 Bitstamp 將停止以太幣質押服務
Thumbnail
幣圈新聞焦點: Solana 好消息!Shopify 將接受 USDC 支付 幣安美國新合作夥伴 MoonPay,美元入金指定買 USDT 老牌交易所 Bitstamp 將停止以太幣質押服務
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News