JSAPI

Since 8.1

scan

调用扫码组件。
获取码值,用码值路由,获取码值并用码值路由是三种不同的actionType。
码值路由,新业务需要找码平台配置业路由规则。@码平台daily(什么样的码,返回什么样的结果。)

API

AlipayJSBridge.call('scan', {
  type, actionType, qrcode
}, fn);

入参

名称类型描述必选默认值版本
typestring扫描目标类型,qr / barY
actionTypestring操作类型
“scan”只扫码值
“route”用码值路由
“scanAndRoute”扫描并路由,类同首页效果
N‘scan’9.9.1
qrcodestring指定用于”route”操作类型的码值N9.9.1
fnfunction扫码获取码信息后的回调函数N

出参

回调函数带入的参数result: {error, barCode, qrCode, cardNumber}

名称类型描述
barCodestring扫描所得条码数据
qrCodestring扫描所得二维码数据
errorint错误码(10: 用户取消, 11: 操作失败)

使用方法

AlipayJSBridge.call('scan', {
  type: 'bar',
  actionType: 'scanAndRoute'
}, function(result) {
  alert(JSON.stringify(result));
});

代码演示

只获取二维码的信息

<h1>点击扫码后输出码对应的信息</h1>

<a href="#" class="btn read">开始扫码</a>

<script>
function ready(callback) {
  // 如果jsbridge已经注入则直接调用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果没有注入则监听注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}

ready(function() {
  document.querySelector('.read').addEventListener('click', function() {
    AlipayJSBridge.call('scan', {
      type: 'qr'
    }, function(result) {
      alert(JSON.stringify(result));
    });
  });
});
</script>

扫描二维码并发起路由

<h1>扫码后不输出信息,直接让支付宝解码</h1>

<a href="#" class="btn read">开始扫码</a>

<script>
function ready(callback) {
  // 如果jsbridge已经注入则直接调用
  if (window.AlipayJSBridge) {
    callback && callback();
  } else {
    // 如果没有注入则监听注入的事件
    document.addEventListener('AlipayJSBridgeReady', callback, false);
  }
}

ready(function() {
  document.querySelector('.read').addEventListener('click', function() {
    AlipayJSBridge.call('scan', {
      type: 'qr',
      actionType: 'scanAndRoute'
    }, function(result) {
      alert(JSON.stringify(result));
    });
  });
});
</script>