Skip to content

Instantly share code, notes, and snippets.

@ksaitor
Last active March 13, 2024 04:28
Show Gist options
  • Save ksaitor/6c832c106a8b9aee4f76a9145eb5d764 to your computer and use it in GitHub Desktop.
Save ksaitor/6c832c106a8b9aee4f76a9145eb5d764 to your computer and use it in GitHub Desktop.
How to add Ethereum payments to your site with MetaMask
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<div>
<button class="pay-button">Pay</button>
<div id="status"></div>
</div>
<script type="text/javascript">
window.addEventListener('load', async () => {
if (window.ethereum) {
window.web3 = new Web3(ethereum);
try {
await ethereum.enable();
initPayButton()
} catch (err) {
$('#status').html('User denied account access', err)
}
} else if (window.web3) {
window.web3 = new Web3(web3.currentProvider)
initPayButton()
} else {
$('#status').html('No Metamask (or other Web3 Provider) installed')
}
})
const initPayButton = () => {
$('.pay-button').click(() => {
// paymentAddress is where funds will be send to
const paymentAddress = '0x192c96bfee59158441f26101b2db1af3b07feb40'
const amountEth = 1
web3.eth.sendTransaction({
to: paymentAddress,
value: web3.toWei(amountEth, 'ether')
}, (err, transactionId) => {
if (err) {
console.log('Payment failed', err)
$('#status').html('Payment failed')
} else {
console.log('Payment successful', transactionId)
$('#status').html('Payment successful')
}
})
})
}
</script>
</body>
</html>
@Lakatoi
Copy link

Lakatoi commented Jan 22, 2022

Hello! Thank you very much for the code!!
I would like to add a data string on the transaction. Nevertheless, I cannot find the way to do it. Anybody can give me a hand to point me into the right direction?
Thanks!!

@4Jamo
Copy link

4Jamo commented Apr 9, 2022

Is there a way I can embed some Metamask code on my s]=Squarespace website so that I can allow Metamask payments - for example, can I copy and paste some code into the website to make a fully functioning wallet connect/Metamask button. I'm happy to pay someone some money if they can help me out.

@4Jamo
Copy link

4Jamo commented Apr 9, 2022

Is there a way I can embed some Metamask code on my s]=Squarespace website so that I can allow Metamask payments - for example, can I copy and paste some code into the website to make a fully functioning wallet connect/Metamask button. I'm happy to pay someone some money if they can help me out.

@stoll
Copy link

stoll commented May 8, 2022

Hey, 4Jamo!

I'm currently building EtherForms, a tool that will allow you to do exactly what you want, without coding skill requirements.

We were formed at ETHAmsterdam, and are currently building out our public launch.

Would be happy to help you 1:1 to get you setup! :)

You can join our Discord (link on website), and I'll be happy to assist you, free of charge.

@pruss68
Copy link

pruss68 commented Jul 31, 2022

Hi.
Thanks for the code. But it not working in mobile app. Have you any idea?

@yogeshsaroya
Copy link

How to take get payment in BUSD not in ETH ?

@vishrut66
Copy link

I also want to know. Is there a way to do it with BUSD or USDT instead of ETH(BNB)? please suggest some way to do it.

@yogeshsaroya
Copy link

I also want to know. Is there a way to do it with BUSD or USDT instead of ETH(BNB)? please suggest some way to do it.

Check here to take payment in BUSD or BNB

https://github.com/yogeshsaroya/metamask_payment/blob/main/take-payment-in-busd-or-bnb-using-web3js.html

@vishrut66
Copy link

thank you

@yogeshsaroya
Copy link

thank you

I will update this code with wallet model so it will work on safari or mobile as well. right now this code is only for chrome/firefox with metamask ext only

@BeycanDeveloper
Copy link

You can also choose to use CryptoPay, our all in one crypto payments solution for your WordPress sites.

Review the CryptoPay: https://beycanpress.com/cryptopay/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment