nodejs 위 챗 애플 릿 테이프 파라미터 QR 코드 구현 코드 가 져 오기

nodejs 위 챗 애플 릿 테이프 파라미터 QR 코드 구현 코드 가 져 오기
프로젝트 수요 로 인해 애플 릿 페이지 에 인자 가 있 는 QR 코드 를 가 져 와 야 합 니 다.좋아,그럼 문 서 를 보고 하 자.
예전 에는 전단 지 를 쓰 고 백 엔 드 를 써 본 적 이 없 었 는데 이번 에는 모처럼 기회 가 생 겨 서 팀장 님 께 서 node 로 써 보라 고 하 셨 어 요.그럼 쓰 세 요.
1.첫 페이지 에서 token 을 가 져 오고 request 요청 을 보 내 며 get 방식 으로 url 뒤에 작은 프로그램의 grant 를 추가 합 니 다.type,appid,secret 는 token 을 순조롭게 받 았 습 니 다.주의 하 세 요.이 token 은 효과 적 인 시간 이 있 습 니 다.작은 프로그램 은 7200 초,즉 2 시간 입 니 다.매일 얻 는 횟수 가 제한 되 어 있 습 니 다.중간 제어 서버 가 정기 적 으로 token 을 가 져 와 야 합 니 다.제 업 무량 이 적어 서 token 을 저장 하지 않 았 습 니 다.매번 다시 가 져 옵 니 다.
2.token 을 받 은 후에 QR 코드 를 받 으 라 고 요청 합 니 다.구 덩이 는 위 챗 이 우리 에 게 2 진 흐름 을 얻 었 다 는 것 을 알려 주지 않 았 습 니 다.그 전에 전단 의 코드 를 썼 습 니 다.대류 에 대해 개념 이 없 었 습 니 다.바 이 두,구 글 의 경우 이틀 동안 고생 한 끝 에 해결 되 었 습 니 다.express 의 구 덩이 를 만 났 습 니 다.원래 express 의 코드 로 QR 코드 를 생 성 할 수 없습니다.express 를 새로 만 들 면 QR 코드 를 생 성 하 는 데 문제 가 없습니다.이상 한 구 덩이 를 만 들 수 있 습 니 다.
상위 코드:

var fs = require('fs'); 
var request = require('request'); 
var wx_conf = require('../../conf/wx_conf');//      appid appSecret,        ,     ,    。 
var AccessToken = { 
 grant_type: 'client_credential', 
 appid: wx_conf.appId, 
 secret: wx_conf.appSecret 
} 
var wx_gettoken_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=' + AccessToken.grant_type + '&appid=' + AccessToken.appid + '&secret=' + AccessToken.secret; 
//         
var postData = { 
 path: "pages/index/index", 
 width: 430 
} 
var createQrcode = { 
 create: function() { 
  console.log('fn:create'); 
  this.getToken(); 
 }, 
 //     token 
 getToken: function() { 
  console.log('fn:getToken'); 
  var that = this; 
  new Promise((resolve, reject) => { 
   console.log('  Promise   '); 
   request({ 
    method: 'GET', 
    url: wx_gettoken_url 
   }, function(err, res, body) { 
    if (res) { 
     resolve({ 
      isSuccess: true, 
      data: JSON.parse(body) 
     }); 
    } else { 
     console.log (err); 
     reject({ 
      isSuccess: false, 
      data: err 
     }); 
    } 
   }) 
  }).then(proData => { 
   that.getQrcode(proData); 
  }); 
 }, 
 //      
 getQrcode: function(proData) { 
  console.log ('fn:getQrcode'); 
  if (proData.isSuccess) { 
   postData = JSON.stringify(postData); 
   request({ 
    method: 'POST', 
    url: 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' + proData.data.access_token, 
    body: postData 
   }).pipe(fs.createWriteStream('./public/images/index.png'));//        
  } else { 
   console.log('Promise      '); 
  } 
 } 
} 
module.exports = createQrcode;//    ,  create           
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기