wechatAppDemo icon indicating copy to clipboard operation
wechatAppDemo copied to clipboard

getPhone功能不可用

Open AnotherW opened this issue 7 years ago • 1 comments
trafficstars

貌似是因为没有实现 调用的云函数,可以分享一下demo里用到的云函数吗?

AnotherW avatar Apr 03 '18 08:04 AnotherW

可以的,你在创建的时候,那里有很多模板,其中一个就是这个代码。

function onRequest(request, response, modules) {

var appId = 'wx094ede192e7e64b5'
var sessionKey = request.body.sessionKey || 'QQiAgWqKv4hu4Lkn6XE0Jw=='
var encryptedData = request.body.encryptedData || 'FyTPbuir1sSNPvaPxxZiUKatMUuuSi16OlkM7mB+U3pxvdCJ7zUrTz9dnZGnSmi8grDYw/g3GU9bCNUrRGQZ2BORLGKXhCEFBme4n0XJAL/uXwIeivFsZIBkaEfFrAh/DvJGibeCDkfO2zHcSOKTsDwtEBbGdJUz/N3o2WG33m27V72t30UUe+CE26rucjM1zJqHkHEsSr9YOZlFodE0+Q=='
var iv = request.body.iv || '74ExWKy/mxV22YeWaJOVVw=='

var groupid = groupIdParse(modules, sessionKey, encryptedData, iv)
var jsongid = JSON.parse(groupid);
response.end(groupid);
return;

function groupIdParse(modules, sessionKey, encryptedData, iv) {
    var crypto = modules.oCrypto;
    var sessionKey = new Buffer(sessionKey, 'base64'); //new Base64().decode(sessionKey);
    encryptedData = new Buffer(encryptedData, 'base64'); //new Base64().decode(encryptedData);
    iv = new Buffer(iv, 'base64'); //new Base64().decode(iv)
    var result = '';
    try {
        // 解密
        var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv)
        // 设置自动 padding 为 true,删除填充补位
        decipher.setAutoPadding(true)
        var decoded = decipher.update(encryptedData, 'binary', 'utf8')
        decoded += decipher.final('utf8')
        result = decoded;
        // decoded = JSON.parse(decoded)
    } catch (err) {
        throw new Error('Illegal Buffer123' + err)
    }
   
    return result;
}

}

magic007 avatar Apr 03 '18 08:04 magic007