微信JSSDKとNodeJSの深さ統合


H 5携帯端末の学生にとっては、WeChatは不可欠な入り口です.もちろん、WeChatを呼び出してH 5またはJSに提供する必要があります.私たちもWeChatの要求によって各種の署名検証をしなければなりません.やっと最終的に私たちの需要に達することができます.GITHUBの上にもこの方面の倉庫がたくさんあります.しかし、彼らは常に多かれ少なかれ完全に需要を満たすことができない、または多くの追加の開発を支払う必要があります.だから、私自身も倉庫wechat-jssdkを開発して、微信JSSDKの機能を最大化しました.この倉庫はjssdkの提供する機能だけに注目して、サービスセンター(NodeJS)の各種の検札サポートを提供しています.ticketの期限切れの処理は、開発者が業務そのものにもっと関心を持つようにします.はい、WHYを言い終わりました.HOWを紹介します.まずデモをお願いします.
主要機能セット
  • サービス端末
  • ブラウザ端末
  • OAuthウェブページのライセンス
  • マイクロクレジットカード券
  • WeChat支払い
  • Stres
  • を使用します.
  • 完全デモ
  • 使い方npm install wechat-jssdk --saveまたはyarn add wechat-jssdk
    //require    
    const Wechat = require('wechat-jssdk');
    const wx = new Wechat(wechatConfig); 
    Wechat ConfigwechatConfigは以下のフォーマットである.
    {
      //              
      wechatRedirectUrl: "http://yourdomain.com/wechat/oauth-callback", 
      wechatToken: "xxx", //  ,                     
      appId: "xxx",
      appSecret: "xxx",
      card: true, //      ,    
      payment: true, //      ,    
      merchantId: '', //  ID
      paymentSandBox: true, //    ,    
      paymentKey: '', //  ,    ,TIP:              ,          ,           。
      //pfx   
      paymentCertificatePfx: fs.readFileSync(path.join(process.cwd(), 'cert/apiclient_cert.p12')),
      //          
      paymentNotifyUrl: `http://your.domain.com/api/wechat/payment/`,
    }
    ウィーチャット環境を設定
    1.今は普通は直接にMP_verify_xxx.txtファイルをあなたのウェブサイトのルートディレクトリに置いて、WeChatに自動的に検証させます.
    2.ブラウザに現在のアドレスの署名を取得するためにAPIを提供する必要があります.
    //express  
    router.get('/get-signature', function(req, res) {
      wx.jssdk.getSignature(req.query.url).then(function(signatureDate) {
        res.json(signatureDate);
      });
    });
    
    3.署名を取得したら、次のブラウザでの使用方法を入力します.
    ブラウザ
    先端にあるjs:
    //ES6
    import WechatJSSDK from 'wechat-jssdk/dist/client';
    //commonjs
    const WechatJSSDK = require('wechat-jssdk/dist/client');
    //others
    window.WechatJSSDK
    //     :
    const wechatObj = new WechatJSSDK(config);
    configは、
    const config = {
      // 4             , 2-4         '/get-signature'  node      
      'appId': 'xxx',
      'nonceStr': 'xxx',
      'signature': 'xxx',
      'timestamp': 'xxx',
      //       
      'success': function(wechatObj){}, //          ,   'successCallback'   
      'error': function(err, wechatObj){}, //          ,   'errorCallback'   
      'debug': true, //   debug   
      'jsApiList': [], //           jsapi  ,      ['onMenuShareTimeline', 'onMenuShareAppMessage'],           
      'customUrl': '' //     js  
    }
    署名の検証に成功したら、あなたの共有内容をカスタマイズできます.
    //          
    //     `wechatObj.callWechatApi('onMenuShareAppMessage', {...})`,      
    wechatObj.shareOnChat({
      type: 'link',
      title: 'title',
      link: location.href,
      imgUrl: '/logo.png',
      desc: 'description',
      success: function (){},
      cancel: function (){}
    });
    //         
    //   
    wechatObj.shareOnMoment({
      type: 'link',
      title: 'title',
      link: location.href,
      imgUrl: '/logo.png'
    });
    オリジナルのWeChatオブジェクトwxを取得するには、wechatObj.getOriginalWx()によって取得することができる.最初の検証が失敗した場合、署名情報はerrorのコールバックで更新され、検証要求を再送信することができる.
    {
      'nonceStr': 'xxx',
      'signature': 'xxx',
      'timestamp': 'xxx',
    }
    他のWeChatインターフェースを起動します.wechatObj.signSignature(newSignatureConfig); newSignatureConfigおよびwechatObj.callWechatApi(apiName, apiConfig)は、WeChat公式インターフェースドキュメントを参照してください.
    OAuth
    デフォルトでは、WeChatを生成するためのライセンスURLはapiNameapiConfigとなっています.ここでのデフォルトのコールURLはwx.oauth.snsUserInfoUrlで構成されているwx.oauth.snsUserBaseUrlです.定義されたコールバックアドレスからwechatConfigを呼び出すことによってもいいです.
    //callback url handler
    // "wechatRedirectUrl"    "http://127.0.0.1/wechat/oauth-callback",        :
    router.get('/wechat/oauth-callback', function (req, res) {
      //  code,      
      wx.oauth.getUserInfo(req.query.code)
              .then(function(userProfile) {
                console.log(userProfile)
                res.render("demo", {
                  wechatInfo: userProfile
                });
              });
    });
    TIP:上のリダイレクトアドレスのドメイン名はすでにWeChatのライセンスコールアドレスの設定に設定されていることを確認します.
    WeChatカード券
    wechatConfigにwechatRedirectUrlを設置して、カード券の機能のサービスサポートをします.demoを参照してください.カード券APIを確認したいです.cards appisを参照してください.
    WeChatで支払う
    wechatConfig設定wx.oauth.generateOAuthUrl(customUrl, scope, state)でWeChat支払い機能のサービスサポートをしています.他のいくつかの支払いに必要な構成も一緒に設定してください.demoを参照してください.支払いAPIを確認して、payment appisを参照してください.
    Stresを使う
    Storeは、ユーザー定義でtokenを保存します.(ファイル、データベースなど)自分のStoreを実現します.APIはStoreを持っています.card: truepayment: true、デフォルトはFileStoreで、MongoStoreファイルに保存します.
    API
    APIのwikiを見ます
    モモ
    プロジェクトを引き延ばします:FileStorewechat-info.jsonからgit clone [email protected]:JasonBoy/wechat-jssdk.gitまでコピーして、中でdemo/wechat-config-sample.jsdemo/wechat-config.jsを改正して、その他の構成は支払ったようなその他の構成はもし支払機能を使うならば.
    結論
    はい、大体の使い方は以上の通りです.JSSDKの大多数の機能需要を満たしています.興味のある人はGithubに行って試してみてもいいです.助けがあれば、Starは励みになります.