Merhabalar,
Bir adet telegram miniapp botu kodladım. Kullanıcılar ton wallet ile cüzdan adreslerini backendi php olan sisteme kaydetmeli ancak bir türlü veritabanına kayıt ettiremiyorum.
Döküman: https://www.npmjs.com/package/@tonconnect/ui
cuzdan.php sayfamdaki script kodu
<script src="https://unpkg.com/@tonconnect/ui@latest/dist/tonconnect-ui.min.js"></script>
<script>
const tonConnectUI = new TON_CONNECT_UI.TonConnectUI({
manifestUrl: 'https://babanas.click/tonconnect-manifest.json',
buttonRootId: 'connect-wallet'
});
tonConnectUI.onStatusChange(async (walletInfo) => {
if (walletInfo && walletInfo.wallet) {
const walletAddress = walletInfo.wallet.account.address;
const username = '<?= $username; ?>';
const response = await fetch('kaydet.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams({
'wallet_address': walletAddress,
'username': username
})
});
const result = await response.text();
console.log(result);
}
});
</script>
kaydet.php sayfam
<?php
include("wisex.php");
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!empty($_POST['wallet_address']) && !empty($_POST['username'])) {
$wallet_address = htmlspecialchars($_POST['wallet_address'], ENT_QUOTES, 'UTF-8');
$username = htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8');
try {
$sorgu = $baglanti->prepare("UPDATE kullanicilar SET wallet_address = :wallet_address WHERE username = :username");
$sorgu->bindParam(':wallet_address', $wallet_address);
$sorgu->bindParam(':username', $username);
if ($sorgu->execute()) {
echo "Cüzdan adresi başarıyla kaydedildi.";
} else {
echo "Cüzdan adresi kaydedilemedi.";
}
} catch (PDOException $e) {
echo "Veritabanı hatası: " . $e->getMessage();
}
} else {
echo "Gerekli veriler eksik.";
}
} else {
echo "Geçersiz istek.";
}
?>