startQrauth method

Future<void> startQrauth({
  1. required String appId,
  2. required List<String> scope,
  3. required String noncestr,
  4. required String ticket,
})

调用微信 API 获得 ticket,开始扫码登录

Implementation

Future<void> startQrauth({
  required String appId,
  required List<String> scope,
  required String noncestr,
  required String ticket,
}) {
  final String timestamp = '${DateTime.now().millisecondsSinceEpoch}';
  final String content = 'appid=$appId'
      '&noncestr=$noncestr'
      '&sdk_ticket=$ticket'
      '&timestamp=$timestamp';
  final String signature = hex.encode(
    sha1.convert(utf8.encode(content)).bytes,
  );
  return _channel.invokeMethod<void>(
    _METHOD_STARTQRAUTH,
    <String, dynamic>{
      _ARGUMENT_KEY_APPID: appId,
      _ARGUMENT_KEY_SCOPE: scope.join(','), // Scope
      _ARGUMENT_KEY_NONCESTR: noncestr,
      _ARGUMENT_KEY_TIMESTAMP: timestamp,
      _ARGUMENT_KEY_SIGNATURE: signature,
    },
  );
}