ОПааааааааааааааа107
16341 단어 cryptographypaymentextensionminter
링크를 삭제합니다.
Как это работает
Обббббббзбббзбббзббб.유효 하중Рассмотрим процесс по шагам.
Бразраараараарааараа
Minter Link-эббзббббббббббббббббб.Оааафаараа-ааааааааа.Прааааазжааааааааааааааааааааааааа.
НоMinter Link,Приииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииии.Разработчики сайтов могут получать мгновенные обновление от вашего кошелька (если вы дали такое разрешение) и делать запросы на оплату и цифровую подпись сообщений. ДбэбббббббббббкаMinter Connect.
구글 브라우저 JavaScriptббббббббббббб
- 명트 링크.Библиотека, с одной стороны, позволяет получать данные о статусе расширения и данные о публичном адресе, с другой — позволяет запрашивать у пользователя разрешение на доступ к публичному адресу, криптографическую подпись и делать запросы на отправку транзакций.
аааааааааааааааааааааа-аааа1072
Minter 연결 Minter Link 결제 흐름
аааааааааааааааа1072
Создадим модели для товаров и заказов. У каждого товара буду поля
price
и coin
, у заказа — itemId
и hash
.аарръ:зааааааараара1072
С С С С С С С С С С С С С С С С С С С С С С С С С С С С С С\
Порядок действия такой:
аааааааааааааааааа
Сфрааааааааааааа
itemId
、чааааааааааааааааа107.аааааааааааааааааааа1072
Отправим запрос в расширение, куда передадим
orderId
При успешной оплате получим назад хеш транзакции в блокчейне.다음을 수행합니다.
Наазззззззззззззззазза,азззарааа-ааааааааааааааааааа.
У каждой транзакции мы проверим
orderId
и ищем там наш paymentData
. ааааааааааааа, 유효 하중, аааааааа.Примеры кода
HTML
<!-- Расширение не установлено -->
<p if="!isMinterLinkInstalled">Minter Link is not installed</p>
<!-- Расширение заблокировано -->
<p if="isMinterLinkInstalled && !isMinterLinkUnlocked">Minter Link is locked</p>
<button onclick="pay(1)" if="isMinterLinkInstalled && isMinterLinkUnlocked">Purchase</button>
JavaScriptimport MinterConnect, { MinterLinkObservableProps } from 'minter-connect'
let isMinterLinkInstalled = false
let isMinterLinkUnlocked = false
let minterPublicAddress = ''
let isAuthenticated = false
// Устанавливаем соединение с расширением
const minterConnect = new MinterConnect('My awesome application')
// Подписываемся на события
minterConnect.subscribe(MinterLinkObservableProps.IsInstalled, (value) => {
isMinterLinkInstalled = value
})
minterConnect.subscribe(MinterLinkObservableProps.IsUnlocked, (value) => {
isMinterLinkUnlocked = value
})
async function pay (itemId) {
if (!isMinterLinkInstalled) return
if (!isMinterLinkUnlocked) return
try {
const orderId = await api.makeOrder(itemId)
const paymentData = {
address: 'Mx...', // наш адрес для оплаты
amount: '999', // цена
coin: 'BIP', // монета
payload: response.data.id // orderId
}
await minterConnect.paymentRequest(paymentData)
} catch (e) {
console.error(e)
}
}
노드JS 회사async function makeOrder (itemId) {
const item = await getItemById(itemId)
const order = new Order({
itemId,
price: item.price,
coin: item.coin
})
order.save()
return order.id
}
// Функция, которая будет перебирать транзакции из блокчейна
async function handleTransaction (transaction) {
// Тип транзакции должен быть Send
if (transcation.type !== '0x01') return
// Адресат должен быть нашим кошельком
if (transcation.data.to !== 'Mx...') return
const orderId = transaction.payload.trim()
const order = await getOrderById(orderId)
// Несуществующий заказ
if (!order) return
// Заказ уже оплачен
if (order.hash) return
// Сумма не совпадает
if (order.price !== tx.data.value) return
// Монета не совпадает
if (order.coin !== tx.data.coin) return
// Все хорошо, это наш заказ!
order.hash = transaction.hash
order.save()
// Дальше ваша бизнес логика: отправляем письмо об успешной оплате, начисляем бонусные баллы, уведомляем frontend о смене статуса заказа и т.д.
}
async function getItemById (itemId) {
return db.getItemById(itemId)
}
async function getOrderById (orderId) {
return db.getOrderById(orderId)
}
Плюсы и минусы
Это просто, удобно и безопасно.
Вы же, как владелец сайта, получите список адресов, который можно использовать для построения базы лояльных пользователей. Поскольку вы точно знаете с какого адреса была произведена оплата, вы можете использовать эти адреса для выплаты кешбека или предоставления персональных скидок в будущем.
내가 할게, 내가 할게, 내가 할게, 내가 할게.
От минусов никуда не деться, серебряной пули не существует.
Minter Connect | Minter Link Playground
Reference
이 문제에 관하여(ОПааааааааааааааа107), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/whitesunset/minter-link-491p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)