export const wechatShare = async (ctx, next) =>
{
const _nonceStr = md5String(Date.now().toString());//获取签名必传字段jsapi_ticket
const _timeStamp = Date.now().toString().substr(0, 10);//获取签名必传字段timestamp
const _url = ctx.request.url;
const index=_url.lastIndexOf("url=");
const url=_url.substring(index+4,_url.length);//前台返回的链接--获取签名必传字段url
// access_token
const access = await rp.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx15f27a7bda610ca3&secret=5813e992713dbd6271ef623bfda10c31`);
const _access=JSON.parse(access);
const _access_token = _access.access_token
//jsapi_ticket
const jsapi = await rp.get(`https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=${_access_token}&type=jsapi`)
const _ticket =JSON.parse(jsapi).ticket
// 获取签名
const autograph = shareWeChat({
jsapi_ticket:_ticket,
noncestr:_nonceStr,
timestamp:_timeStamp,
url:url
})
const data = {
appId : appid, // 必填,公众号的唯一标识
timestamp : _timeStamp, // 必填,生成签名的时间戳
nonceStr : _nonceStr, // 必填,生成签名的随机串
signature : autograph// 必填,签名
};
ctx.body = {
code : 0,
message :data ,
};
next();
};
[签名获取官网地址]https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62