快捷导航

TypeError: Cannot read property 'call' of undefined

'use strict'

var sha1 = require('sha1')
var getRawBody = require('raw-body')
var Wechat = require('./wechat')
var util = require('./util')

module.exports = function(opts,handler){
    var wechat = new Wechat(opts)

    return function *(next){
        var that = this
        var token = opts.token
        var signature = this.query.signature
        var nonce = this.query.nonce
        var timestamp = this.query.timestamp
        var echostr = this.query.echostr
        var str = [token,timestamp,nonce].sort().join('')
        var sha = sha1(str)//把str用sha1加密

        if (this.method === 'GET') {//判断是否是GET提交
            if (sha === signature) {//判断加密之后的数据是否与微信返回的一样
                this.body = echostr + ''
            } else {
                this.body = 'wrong'
            }
        } else if (this.method === 'POST') {//判断是否是POST提交
            if (sha !== signature) {//处理错误
                this.body = 'wrong'
                return false
            }

            var data = yield getRawBody(this.req,{//通过getRawBody拿到POST过来异步请求的原始XML数据
                length: this.length,
                limit: '1mb',
                encoding: this.charset
            })

            var content = yield util.paresXMLAsync(data)//解析data
            //console.log(content)

            var message = util.formatMessage(content.xml)//解析content xml格式数据
            // console.log(message)

            this.weixin = message

            yield handler.call(this, next)

            wechat.reply.call(this)
        }
    }
}

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

你好,请问下这个问题怎么解决啊
回复

使用道具 举报

call未定义
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP