微信小程序生成二维码的方法是
获取小程序二维码
接口C:适用于需要的码数量较少的业务场景
接口地址:
https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=ACCESS_TOKEN
获取 access_token 详见文档
POST 参数说明
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | String | 不能为空,最大长度 128 字节 | |
width | Int | 430 | 二维码的宽度 |
注意:通过该接口生成的小程序二维码,永久有效,数量限制见文末说明,请谨慎使用。用户扫描该码进入小程序后,将直接进入 path 对应的页面。
按照阿里的文档解释,阿里oss的sdk支持buffer数据
用户也可以通过put接口简单地将Buffer中的内容上传到OSS:
var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
region: '<Your region>',
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: 'Your bucket name'
});
co(function* () {
var result = yield client.put('object-key', new Buffer('hello world'));
console.log(result);
}).catch(function (err) {
console.log(err);
});
目前我是这么写的
const resData = {
path: app.config.QrCodeRes.path + uid,
width: app.config.QrCodeRes.width,
};
const img = yield app.curl(app.config.QrCodeRes.url + token, {
method: 'POST',
data: { resData },
});
const pathDateMake = moment().toObject();
const path = '/Qrcode/' + pathDateMake.years + '/' + uid + '.png';
const result = yield this.ctx.oss.put(path, new Buffer(img.data));
不知道为何,上传到OSS的图片下载下来都是黑屏一片
很明显,对BUFFER的处理不对
求解如何正确的处理
已经解决了,粗心提交的数据不对
因为上面已经定义了resData的数据。。。所以返回来的buffer在转换后其实提示的是错误。