快速开始
介绍
本指南将引导您使用Liquido的Element控件创建支付表单. card
元素通过插入一个灵活的输入框来简化表单, 并最大限度地减少所需的字段数量, 该字段可以安全地收集所有必要的卡片详细信息.
您可以使用Elements(我们预先构建的UI组件)创建一个支付表单, 该表单可以安全地收集客户的卡信息, 而无需处理敏感的信用卡数据。然后, 信用卡的详细信息将转换为card token,您可以将card token安全地将其发送到服务器, 而不用担心卡信息泄露.
使用Elements创建自定义付款表单需要四个步骤:
- 引入element.js的依赖.
- 创建您的支付表单.
- 调用api创建一个card token.
- 将token和其余信息提交到服务器.
在开始之前: 需要HTTPS
所有使用Elements提交的支付信息都是通过安全的HTTPS连接进行的. 然而, 为了保护自己免受某些形式的中间人攻击, 并防止您的客户在现代浏览器中看到混合内容警告, 您还必须通过HTTPS保护支付表单的页面.
使用 Elements
-
Step 1: 引入element.js的依赖
Elements通过elements.js使用. 开始时, 在您的页面加入下面的脚本引用https://js.liquido.com/element.js. 如果是测试环境, 您可以使用https://js.dev.liquido.com/element.js.
下一步, 创建一个Elements实例:
const liquidoInstance = liquido('your_api_key') const elements = elements = liquidoInstance.elements({ locale: 'en', country: 'BR' })
更多element.js的使用, 请查看element参考.
-
Step 2: 创建您的支付表单. 为了安全地从客户那里收集卡的详细信息, Elements为您创建了由Liquido托管的UI组件. 然后将它们放入您的付款表单中,而不是您直接创建它们. 要确定将这些组件插入何处,请在支付表单中创建具有唯一ID的空DOM元素(容器). 例如:
<form action="/save_card" method="post" id="payment-form"> <div class="form-item"> <label>Credit Card</label> <div id="card-element"> <!-- A Liquido Element will be inserted here. --> </div> <!-- Used to display Element errors. --> <div id="card-errors" role="alert"></div> </div> <div class="form-item"> <label>Card holder name</label> <input id="card-holder" type="text" name="cc-name" placeholder="Card holder name" /> </div> <button>Pay</button> </form>
加载了上面的表单后,创建一个Element实例,并将其装载到上面创建的Element容器中:
// 在创建一个element实例时,可以将自定义样式传递给options. const style = { base: { fontSize: '16px', lineHeight: '30px' } }; // 创建一个card Element实例. const card = elements.create('card', { style }); // 挂载一个card Element实例到`card-element` <div>. card.mount(document.getElementById('card-element'))
element在输入时验证用户输入. 为了帮助您的客户发现错误,您应该监听
card
元素上的change事件并显示任何错误:card.addEventListener('change', (event) => { const displayError = document.getElementById('card-errors'); displayError.textContent = event.error ? event.error.message : '' })
设置法律政策: 对于集成Elements, 当客户完成结账时, 您需要链接到Liquido隐私政策,以获得有关法律条款的协议. 您可以使用以下示例添加它: [商户名称] is powered by Liquido. 因此, 您现在正在向Liquido提供您的个人数据. 欲了解更多信息,请访问Liquido隐私政策。
-
Step 3: 创建 card token 以安全地传输卡信息 可以将Elements收集的付款详细信息转换为card token. 创建一个事件处理程序来处理表单上提交的事件. 该处理程序将敏感信息发送给Liquido进行标记化, 并阻止表单提交(下一步将通过JavaScript提交表单).
// 提交表单时创建card token或显示错误. const form = document.getElementById('payment-form') form.addEventListener('submit', (event) => { event.preventDefault() const name = document.getElementById('card-holder').value liquido.createToken(card, { name }).then((result) => { // 发送card token到您的服务器 handleToken(result.data.cardId) }).catch((result) => { if (result.error) { // 告知消费者发生了错误 const errorEl = document.getElementById('card-errors') errorEl.textContent = result.error.message } }) })
-
Step 4: 将card token和表单的其余部分提交到服务器 最后一步是将 card token 以及已收集的任何其他信息提交到服务器.
const handleToken = (token) => { // 将令牌ID插入表单,以便将其提交到服务器 const tokenInputEl = document.createElement('input') tokenInput.setAttribute('type', 'hidden') tokenInput.setAttribute('name', 'cardToken') tokenInput.setAttribute('value', token) form.appendChild(tokenInput) // Submit the form form.submit() }