                     # 3. `桌面`回掉：模拟成桌面端注册回调方法。
                     mobile  = res
                     desktop_callback = -> redis_client.publish 'WX:SEND:DESKTOP', JSON.stringify id: id, content: [message.msg_id].concat Array::slice.call(arguments)
-                    scan_handler req, mobile, desktop_callback
+                    async.eachSeries scan_handler, (handler, callback) ->
+                      handler req, mobile, desktop_callback, callback
+                    , ->
 
                 # 未注册永久二维码处理流程时：
                 # + 响应微信`200`


                # 模板消息发送成功时，
                when 'templatesendjobfinish'
                  if @template_handler
                    @template_handler(req, res)
                  else res.ok()

                # 尚无法处理的事件，直接响应`200`。
                else res.ok()


            # 收到图片、语音、视频、地理位置、链接时，如注册了处理句柄，使用该句柄处理：
            when 'image', 'voice', 'video', 'location', 'link'
              async.eachSeries @["#{msg_type}_handlers"], (handler, callback) ->
                handler req, res, callback
              , ->
                res.ok()

            # 收到事件消息时，判断事件类型：
            when 'event'
