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
3會員
7內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
ppe ha的沙龍 的其他內容
Solana Pay是基於Solana區塊鏈開發的支付協議,允許使用加密貨幣進行支付。文章介紹了Solana Pay的優勢和功能,下一篇文章將簡單介紹其API的機制與實作。
Solana Pay是基於Solana區塊鏈開發的支付協議,允許使用加密貨幣進行支付。文章介紹了Solana Pay的優勢和功能,下一篇文章將簡單介紹其API的機制與實作。
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
Thumbnail
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
1.簡述 Solana Pay 的基本概念及其運作方式。 2.簡述 Solana Pay 整合到商業銷售系統的教程。 3.簡述使用 Solana Pay 對商戶和消費者的好處 4.簡述 Stripe 與 USDC 的整合方式。 5.簡述如何為企業設置 Stripe USDC 的指南。 6.
你有聽過Solana上新推出的超強功能 「Token Extension」嗎?有了Token Extension,工程師能夠更快速的在Solana上建立專案,並且大幅增強了各個專案之間融合的便利性。如果你還不知道什麼是Token Extension,這篇文章你必須看完!
Token Extension Standard 是 Solana 區塊鏈上的一個代幣標準, 基於原始的 SPL(Solana Program Library)代幣標準進行構建。 具有增強的安全性和功能、改進的代幣處理能力, 如多重簽名和時間鎖定、設計 用於支持更複雜的代幣操作和使用案例
在上一篇part 1的文章中簡單的介紹了什麼是Solana Actions & Blinks後,這篇我來詳細一點介紹一下Solana Actions以開發者的角度來看是怎麼樣子的。
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
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
本篇文章提供清晰的步驟與代碼,指導開發者如何在實際項目中設置和使用 CandyPay。無論是新手還是有經驗的開發者,您都可以輕鬆掌握如何將這一強大的支付工具無縫整合到應用中,並實現加密貨幣支付功能。文章中還介紹了 NFT-Based Discount 的設置方法,幫助商家擴展客戶忠誠度。
Thumbnail
CandyPay 是一個使用 Solana 區塊鏈的 Payment solution,企業只需撰寫幾行程式碼,即可將這個支付基礎設施整合到自己的應用中,並開始接受 Solana Payments。這使得企業能夠輕鬆利用 Solana 提供的快速、低成本的去中心化支付網路。 值得一提的是,Cand
1.簡述 Solana Pay 的基本概念及其運作方式。 2.簡述 Solana Pay 整合到商業銷售系統的教程。 3.簡述使用 Solana Pay 對商戶和消費者的好處 4.簡述 Stripe 與 USDC 的整合方式。 5.簡述如何為企業設置 Stripe USDC 的指南。 6.
你有聽過Solana上新推出的超強功能 「Token Extension」嗎?有了Token Extension,工程師能夠更快速的在Solana上建立專案,並且大幅增強了各個專案之間融合的便利性。如果你還不知道什麼是Token Extension,這篇文章你必須看完!
Token Extension Standard 是 Solana 區塊鏈上的一個代幣標準, 基於原始的 SPL(Solana Program Library)代幣標準進行構建。 具有增強的安全性和功能、改進的代幣處理能力, 如多重簽名和時間鎖定、設計 用於支持更複雜的代幣操作和使用案例
在上一篇part 1的文章中簡單的介紹了什麼是Solana Actions & Blinks後,這篇我來詳細一點介紹一下Solana Actions以開發者的角度來看是怎麼樣子的。
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 是一個區塊鏈平台,旨在提供高速度和低成本的交易