import * as Purse from "https://cdn.purse-sandbox.com/headless-checkout/latest/purse.esm.js";
const checkout = await Purse.createHeadlessCheckout("YOUR_CLIENT_SESSION");
checkout.paymentMethods.subscribe((methods) => {
const creditCard = methods.find(m => m.method === "creditcard");
if (creditCard) {
const hostedFields = creditCard.getHostedFields({
fields: {
cardNumber: { target: "card-number", placeholder: "1234 5678 9012 3456" },
holderName: { target: "cardholder-name", placeholder: "John Doe" },
expDate: { target: "expiry-date", placeholder: "MM/YY" },
cvv: { target: "cvv", placeholder: "123" }
}
});
hostedFields.render();
hostedFields.supportedBrands.subscribe((brands) => {
console.log("Available brands:", brands);
});
hostedFields.detectedBrands.subscribe((brands) => {
console.log("Detected brands:", brands);
if (brands && brands.length > 0) {
try {
hostedFields.setSelectedBrand(brands[0]);
} catch (err) {
if (err.code === "NotSupportedBrandError") {
console.error("Brand not supported:", brands[0]);
}
}
}
});
const selectBrand = (brandName) => {
try {
hostedFields.setSelectedBrand(brandName);
} catch (err) {
if (err.code === "NotSupportedBrandError") {
console.error("Brand not supported:", brandName);
}
}
};
}
});