前端接口
1. API
使用方法 PMdropin.API。
API | 描述 | 详情 |
---|---|---|
create | 示例化一个内置组件 | 参阅create |
mount | 将实例化组件挂载到div标签 | 参阅mount |
on | 监听事件 | 参阅on |
emit | 触发事件 | 参阅emit |
1.1 create
用于初始化组件,使用方法 PMdropin.create(ComponentName, Options)。
ComponentName详解
ComponentName | 字段类型 | 描述 |
---|---|---|
applepay | string | ApplePay组件 |
Options详解
Options | 是否必填 | 字段类型 | 描述 | 默认值 |
---|---|---|---|---|
clientKey | Y | String | 客户端公钥 | - |
sessionKey | Y | String | 安全访问令牌 | - |
sandbox | N | Boolean | 沙盒环境 | false |
theme | N | String | 主题 | light |
payButtonStyle | N | String | 按钮样式 | - |
1.2 mount
用于挂载初始化组件实例,使用方法PMdropin.mount(Tag)。
Tag详解
Tag | 描述 |
---|---|
id | 需要挂载的id元素值,如 PMdropin.mount('#applepay-frame') |
class | 需要挂载的class元素值,如 PMdropin.mount('.applepay-frame') |
1.3 on
用于监听组件内置响应事件,使用方法PMdropin.on(Event, CallbackFunction)。
Event详解
Tag | 描述 | 返回值 |
---|---|---|
ready | 组件加载完成时触发 | null |
payButtonClick | ApplePay按钮被点击时触发 | null |
示例:
js
PMdropin.on('payButtonClick', function(event) {
// achieve paymentToken and orderAndPay
applePay.emit('setDisabled', true)
applePay.emit('canMakePayment')
.then(res => {
const paymentToken = res?.data?.paymentToken
if(paymentToken){
orderAndPay()
}else{
applePay.emit('setDisabled', false)
}
})
.catch(err => {
applePay.emit('payFail')
applePay.emit('setDisabled', false)
})
});
1.4 emit
用于调用组件内置方法,使用方法PMdropin.emit(Event, Params)。
Event | Params | 描述 |
---|---|---|
canMakePayment | - | 获取本次支付token |
switchTheme | string | 切换主题 |
setDisabled | Boolean | 设置组件可用状态 |
setPayButtonStyle | string | 设置按钮样式 |
1.4.1 emit.canMakePayment
检查当前组件状态是否具备发起支付条件,如果校验通过则返回卡标识。
canMakePayment Response:
Code码 | 描述 |
---|---|
APPLY_SUCCESS | 成功获取 paymentToken |
UNKNOWN_ISSUE | 异常信息 |
1.4.2 emit.switchTheme
- 设置按钮主题
- 类型: Boolean
- 默认:light
主题名称 | 主题编码 | 效果预览 |
---|---|---|
白色 | light 默认 | |
黑色 | dark |
1.4.3 emit.setDisabled
- 设置组件可用状态
- 类型 Boolean
- 默认:false
js
// 按钮不可用状态
PMdropin.emit('setDisabled', true)
// 按钮可用状态
PMdropin.emit('setDisabled', false)
1.4.4 emit.setPayButtonStyle
- 设置按钮样式
- 类型: Boolean
- 默认:false
js
// 设置ApplePay按钮宽高、内边距、边框弧度
PMdropin.emit('payButtonStyle', `width:20rem;height:4rem;border-radius: 4rem;padding:1rem 4rem;`)