Secure JWT Checkout

  1. Tokenize the checkout params
    Request
    1curl --request POST \
    2 --url https://api-sandbox.coinflow.cash/api/checkout/jwt-token \
    3 --header 'Authorization: YOUR_API_KEY' \
    4 --header 'accept: application/json' \
    5 --header 'content-type: application/json' \
    6 --data '
    7{
    8 "webhookInfo": {
    9 "example": "{\"my webhook info\": \"asdfghjk\"}"
    10 },
    11 "subtotal": {
    12 "currency": "USD",
    13 "cents": 500
    14 },
    15 "email": "iamapayer@gmail.com",
    16 "blockchain": "solana",
    17 "chargebackProtectionData": [
    18 {
    19 "productType": "inGameProduct",
    20 "rawProductData": {
    21 "example": "{\"description\":\"description about the purchase\"}"
    22 },
    23 "productName": "my product",
    24 "quantity": 1
    25 }
    26 ],
    27 "settlementType": "USDC",
    28 "supportEmail": "mysupportemail@email.com",
    29 "deviceId": "123456789",
    30 "feePercentage": 5
    31}
    32'
    Response
    1{
    2 "checkoutJwtToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXgtmg2IDngJPog6zEsOOMktOA4ZiB4LCE5oGA45iB6LCT6aKk7KCV6aOD45ir5auQ5KyQxqFTduGQgeOghO-AgO6Ahey-hlwi6JSm4YaC4byW4rGo46an6r6J4ZiE75Wz7ZCl6YKhRuagqOWXh9Sf5Yio74Sj7oqM6aeT75qT7YKi6ZyL6JK47JCU4pK-5pGk5KGe4qCI5LGw6KC65pmw5qO47JGo5aOh5LGk5qG85qGw5pq44ZGI6quM5puJXHVkOGI056uE4aK-7LO457GI54O05piU4aG876KY5qK066KOXHVkZTc04KCI76KN4aOu4aOE45iY5pG87oWo5KCU6rSB6aG257Gm5oWI4aKp7JOE5JCU5aCY4re45JO746mw6JWJ57OH6JW84ZGm4ZqM6Y-B4KKO5qOm4qK57JOL6Y-17JG84KGL4o6457e045Cm5LaO7o6B74O46JCM1IzooaDmj6DlgJjnvpngtaHknqHihYbnkbTiuIzonIPliJHuoaTioq7gs4_kg4LhgrHngYPhqJfQiuSIkeK7mOWwoeidiOSHsc-oXHVkOTBh4qmX4YKS4aiiXHVkY2Y47LKZ4YKG5Jii6YuQ7rm74oSf5paC4oaY4YCU5Zi-7JmP5I6D5oKW4rm34aGD5KWX7IeA5paq67KT4buK6ZWX7o-w4aGc55GL4paD7K6i64mR5Zah6aaG6YGL7oao5piE5Zqe6KCN5K-g5rCa5ay47JSG4qOA76qyXHVkZjA06oGdXHVkZjc246i15KGM77KZXHVkZTlh6YGK4ZeJ4amC4L-B4pmi5oGY5bmw44iO4ZyX5YSO6reC56in6q2Z6KGk2LjluKjjsobHr-qFsOOSgee4quuIsOmZhuSls-iiruOJseivgu6Dpuesk-KhiOe2i-qiieSLjOCim-GkhuC2puGhl-GIuuWRlue0iuKmkempjuGLpOC2teuEgOigmeOVvO-PkeabjOyUi-iFme-qu-GetemLmOmTqOeJsOWym-G8kOyWh96o74m64pyJ6YuU7JCE7KGZ6YO9yI7koYzpoLjhmYnom7jFjFx1ZGJkMOakgeC9iOGDveOUr--CjOKgvuyQkuGBvuK5juStvumgouqEqOeSseOkm-iokOqgn9qI4YKo6ZqK64Wg5qqw6reh5IeJ44yL2rjuoLLdguGinuibhOiCgC_pgIAiLCJtZXJjaGFudElkIjoidHlsZWUiLCJpZGVtcG90ZW5jeUtleSI6IklLYTU5NmQwNjEtYmE0ZC00MTg2LTk4ZGQtNmEyOGVjM2M3ODY2Iiwic3VidG90YWwiOnsiY3VycmVuY3kiOiJVU0QiLCJjZW50cyI6NTAwfSwiaWF0IjoxNzQzMTcwMjkzLCJleHAiOjE3NDMyNTY2OTN9.l3feSqMRGlZWh_3jyw2nz_lfasZA_L2P4HVwAWtkGOE"
    3}
  2. Pass JWT Token to CoinflowPurchase
    1<CoinflowPurchase
    2 wallet={{wallet}}
    3 merchantId={'photofinish'}
    4 env={'sandbox' | 'prod'}
    5 connection={connection}
    6 onSuccess={() => {
    7 console.log('Purchase Success');
    8 // Redirect the user to a different screen.
    9 }}
    10 blockchain={'solana'}
    11 subtotal={{currency: Currency.USD, cents: 100}}
    12 jwtToken = {'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoi456C4oKW26LXguCjgOKYgueAleiAnN2j5IGM4LGn46CD5oOb4LCF44CQ7Iqy4YCF6KSz4KCI7KaczLDGkOuhgNqE44iA7rWwybDgp6DHgOCumeawgOSQqeSio0LgsJ3njaPmoYXItOa1ku6AjOyFieKmlOiTke67iOWCguWxiOmroOSNuO65suOou-mUremsreWZqOSytueBrOeBpOGgqOSZiOaxrOKhiOiRpOmitOGxiOG7vuuYnOeDmOeBjOChhuCglOuTiOunuOyYlOawmOqXtuujvuSyuuuSnOy7mOqglOSZqOahpOeVrOiwmOShsOKglOaphuGhjOuXjeiRhuaStOSZjFx1ZGQxY-K7k-uQlFx1ZDg2NO-kqOmUq-qHg-6Xqu-pmuySoeGxhuSVhueDquqYiOmHlOShmuGzmOKgnOaikeSuuFx1ZGExOOebvuKisuuguOiSqdOD4LCy4Y6B7IqZ5LO045Cb6qeM4o2D6Iyc7KOR4ZKt4ZyC6I2h6oCy44SMzZPSheyHmeixmOOyhsyE5IWC7oCo5LCO46uJ0rfvg6Dos6jMmOWqguiMi-qSjOu4nOqdkuivsuerpeWljOGmlemCi-6ZmeyFsOuItOCouuKDpeqCoeuAnOiImeGciuyNqeaIiuSxseWkrtek64S4XHVkODRi4YiN6LqnwqDngLjojJrhnIzsrYLpm43rqI3jjKbotoztmJjigYLlkoTihILoloXpi5HtkafijJHolZTogYLosoHnlZvmmonohYDnhbHooLTrjIXcr-mWou2GsOSwsuGchOm6g-qrmOGBmeieoOyfoemhiOWBsOGSqeWohOyzkO6rm-yhmeOQrOaAq-STqeGnpuSxteCoquWSgO6JkuqwnuGBmtys6Yax4rGQ5JS46rSH6ICF74iAIiwibWVyY2hhbnRJZCI6InRlc3R0ZXN0IiwiaWRlbXBvdGVuY3lLZXkiOiJJSzVlZWE3YzI3LWEyMjgtNDcyMC1iYTVkLWI1ZDA0ZDUzMzA3MCIsInN1YnRvdGFsIjp7ImN1cnJlbmN5IjoiVVNEIiwiY2VudHMiOjUwMH0sImlhdCI6MTc0Mjg1NTY3OCwiZXhwIjoxNzQyOTQyMDc4fQ.2dGfWnazfyHaz_uEWKM9RU-jh-tXUSMPFZJdNvmMPwo'} // JWT from step 1
    13/>
  3. Whitelist your url
    By whitelisting your domain, checkout can only be completed on your domain. This protects against bad actors trying to take your checkout link and injecting it onto their site.