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();
const displayBrandSelector = (brands) => {
console.log("Available brands:", brands);
};
hostedFields.supportedBrands.subscribe(displayBrandSelector);
hostedFields.detectedBrands.subscribe((brands) => {
console.log("Detected brands:", brands);
if (brand) {
try {
hostedFields.setSelectedBrand(brands[0]);
} catch (err) {
if (err.code === 'NotSupportedBrandError') {
console.error("Brand not supported:", brand);
}
}
}
});
const selectBrand = (brandName) => {
try {
hostedFields.setSelectedBrand(brandName);
} catch (err) {
if (err.code === 'NotSupportedBrandError') {
console.error("Brand not supported:", brandName);
}
}
};
}
});