This article has participated in the good article call order activity, click to see: back end, big front end double track submission, 20,000 yuan prize pool for you to challenge!

XDHJMM, I am still that unladylike cat ~, my Lord Is going to open a column, “Luck FEer”, here will include all the articles that a common FEer thinks “cross the boundary”, in order to prove that we FEer are lucky, we can do everything, front and back end take all, all end take all, also can play games, XDJMM what do you think? ! Like male bestie, jimei people more attention, more like, more urge more.

Spicy, let’s start today’s article!

instructions

  1. Pure front-end technology (NodeJS) implementation
  2. Latest test available (2021-7-24 5:31am)
  3. It can realize the basic functions of ordinary robots
  4. Can achieve personal wechat collection API
  5. All wechat accounts can be used,You can use things that are not available in the Web version
  6. Can receive messages from the public account
  7. This article can prevent depression. Get rid of it

Wechat robot in Python: Not all web WeChat available python 】 write a WeChat robot, such as the nuggets sauce automatic welcome, automatic invite | python topic month (meet the above 2356, interested can Chou Chou) articles, and this article does not speak the implementation details, speak only the method to realize the core, provide ideas, to determine the feasibility research is available, guarantee the measured available.

Tips: Please use the techniques mentioned in this article legally

Technology used

  • nodejs
  • Docker (you don’t have to)

So you still don’t think you need to learn Docker on the front end? If you need it, you can go to the docker Speedster article:

  • 1.Docker Quick Start
  • 2.Docker Quickstart 2
  • 3.Docker Quickstart 3
  • 4.Docker QuickStart 4 is over
  • Docker uses Python3.5, php7+mysql8+nginx, go Web

Project introduction

Wechaty is a software development kit for conversational RPA (Robotic Process automation) software development for chatbot manufacturers. It is well designed and has an easy-to-use API. It supports all operating systems including Linux, OSX, Win32, Docker, as well as many instant messaging tools (instant messaging services) including wechat, WeCom, Whatsapp, Lark, Gitter, etc.

As a developer, you can use Wechaty to easily build your robot, effectively manage the sending and receiving of messages, create rooms and send invitations, contact friends, and happily add AI between users and robots.

Cloning of warehouse

git clone https://github.com/yizhihuamao/wechaty-getting-started

#Clone slow digger, 3 secondsclone:
git clone --depth=1 https://github.com.cnpmjs.org/yizhihuamao/wechaty-getting-started
Copy the code

Depend on the installation

Nodejs =12.18.3, nodejs=12.18.3, nodejs=12.18.3, nodejs=12.18.3

  • Do not install using YARN
  • Do not use Taobao source installation
  • Use NPM official source installation, conditionally cooperate with TIZI (no conditions to see the mood of the network, large probability will fail to install several times, patient point ha ~), terminal TIZI (execution:Export http_proxy = http://127.0.0.1:1080; Export https_proxy = http://127.0.0.1:1080;), because it was skipped beforeChromiumThe installation, finallyyarn start“Will prompt:
Yarn Start Yarn Run V1.22.4$ ts-node examples/ding-dong-bot.ts21:04:34 ERR PuppetWeChatBridge start() exception: Error: Could not find expected browser (chrome) locally. Run `npm install` to download the correct Chromium revision (884014). 21:04:34 ERR PuppetWeChat initBridge() exception: Could not find expected browser (chrome) locally. Run `npm install` to download the correct Chromium revision (884014). 21:04:34 ERR PuppetWeChat initBridge() this.bridge.stop() rejection: Error: no page 21:04:34 ERR PuppetWeChat start() exception: Error Error: at PuppetWeChat.<anonymous> (/Users/woojufon/Desktop/wechaty-getting-started/node_modules/wechaty/src/wechaty.ts:444:32)  at PuppetWeChat.emit (events.js:315:20) at PuppetWeChat.EventEmitter.emit (domain.js:483:12) at PuppetWeChat.start (/Users/woojufon/Desktop/wechaty-getting-started/node_modules/wechaty-puppet-wechat/src/puppet-wechat.ts:201:12) 21:04:34 ERR Wechaty start() exception: 21:04:34 ERR StarterBot Error ✨ Done in 2.40s.Copy the code

Recommended installation, may be used later

    "wechaty-puppet-padlocal": "^ 0.4.2"."wechaty-puppet-service": "^ 0.14.8"
Copy the code

The MAC, meow execution node node_modules/puppeteer/install. Js, depend on the installation fails, try a few times more, try a few times more, try a few times more. See you in the comments section if you have any questions.

start

yarn start

Yarn Start Yarn Run V1.22.4$ ts-node examples/ding-dong-bot.ts21:10:58 INFO StarterBot Starter Bot Started. ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▄ ▄ ▄ ▄ ▄ █ ▀ ▄ █ ▀ ▀ ▀ ▀ ▀ █ ▄ ▀ █ ▄ ▄ ▄ ▄ ▄ █ █ █ █ █ ▄ ▄ █ ▄ █ ▄ █ ▀ ▀ █ █ █ █ █ █ ▄ ▄ ▄ █ █ ▀ █ ▀ █ █ ▀ ▀ ▀ █ █ ▄ ▄ ▄ █ █ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▀ ▄ █ █ ▄ █ ▄ ▀ ▄ ▀ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ █ █ █ █ ▄ ▀ █ ▀ █ ▄ ▄ ▀ ▀ ▀ █ ▄ █ ▀ ▄ ▄ ▀ ▄ ▄ ▀ █ █ ▄ ▀ ▀ ▀ ▄ ▄ ▄ ▄ ▄ ▄ █ █ ▀ █ ▀ ▄ ▄ ▄ ▄ ▄ ▄ █ █ █ █ █ ▄ ▀ ▀ ▄ ▄ ▀ ▀ ▀ ▀ ▄ ▀ █ ▀ ▄ █ ▀ ▄ █ █ ▄ █ ▄ ▄ █ █ █ ▄ ▄ ▄ █ ▄ ▀ ▀ █ █ ▀ ▀ ▀ ▄ ▀ █ █ ▄ ▄ █ █ █ ▄ ▄ █ █ █ ▄ █ █ ▄ ▀ ▀ █ █ ▄ ▄ ▀ ▀ █ ▀ █ ▄ ▀ █ █ ▄ █ ▀ ▄ ▄ ▄ █ ▀ ▄ ▀ █ █ ▀ ▀ ▄ ▀ ▀ █ ▄ ▄ ▄ ▄ ▀ █ █ █ █ ▄ █ ▄ ▄ ▄ ▄ ▄ █ ▄ ▀ █ █ ▄ ▄ ▄ ▄ ▄ █ ▀ ▀ █ █ ▄ ▄ ▄ ▄ ▄ █ ▄ █ █ ▀ ▄ ▄ ▀ █ █ ▄ █ ▀ ▀ ▀ █ █ █ █ █ ▀ ▄ █ █ ▀ ▄ █ ▄ █ ▀ ▄ ▄ ▀ ▀ ▀ █ █ █ █ ▄ ▄ ▄ █ █ ▀ ▄ █ ▄ ▄ █ ▀ █ ▀ █ █ ▀ ▄ ▄ ▄ ▀ ▄ █ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▄ ▄ ▄ █ ▄ ▄ █ ▄ █ ▄ ▄ █ ▄ ▄ █ ▄ █ ▄ █ ▄ █ █ 21:10:59 INFO StarterBot onScan: Waiting(2) - https://wechaty.js.org/qrcode/https%3A%2F%2Flogin.weixin.qq.com%2Fl%2FYdF1Wn_zow%3D%3D 21:11:21 INFO StarterBot onScan: Scanned(3) 21:11:23 INFO StarterBot onScan: Confirmed(4)Copy the code

And that’s a success. The following is an example:

If you are using Windows, you may also need windows-build-tool:

npm install windows-build-tools
Copy the code

Project Overview

. |--advanced | |--plugin-bot.ts | |--friend-bot.js | |--media-file-bot.js | |--room-bot.js | |--busy-bot.js | |--self-testing-bot.js | |--gist-bot | | |--on-friend.js | | |--on-room-join.js | | |--index.js | | |--on-message.js | |--shell-bot.ts | |--room-say-cli.js | |--demo-in-tutorial.js |--professional | |--telegram-roger-bot.js | |--blessed-twins-bot | | |--README.md | | |--bless-twins-bot.ts | |--ctrl-c-signal-bot.ts | |--tuling123-bot.js | |--hot-import-bot | | |--README.md | | |--hot-import-bot.js | | |--run-by-docker.sh | | |--run-by-node.sh | | |--listeners | | | |--on-login.js | | | |--on-friend.js | | | |--on-scan.js | | | |--on-message.js | |--send-link.ts | |--speech-to-text-bot.ts | |--monster-bot | | |--index.js | | |--config.js | | |--README.md | | |--run-monster-bot.sh | | |--listeners | | | |--on-login.js | | | |--on-friend.js | | | |--on-scan.js | | | |--on-message.js | |--api-ai-bot.ts |--tensorflow.js | |--fingerpose | | |--README.md | | |--package.json | | |--examples | | | |--paper.png | | | |--rock.png | | | |--scissors.png | | | |--handpose.ts | | |--bot | | | |--fingerpose-bot.ts | | |--tsconfig.json |--third-parties | |--codesandbox | | |--.gitignore | | |--package.json | | |--tsconfig.json | | |--sandbox.config.json | | |--install-gotty.sh | | |--ding-dong-bot.ts | |--maodou | | |--maodou-nlp.js | | |--README.md | | |--package.json | | |--maodou-course-api.js | | |--maodou-classes-bot.js | |--xiaoli | | |--xiaoli-news-bot.js | | |--README.md | | |--package.json |--ding-dong-bot.js |--basic | |--the-worlds-shortest-chatbot-code-in-6-lines.js | |--ding-dong-bot.js |  |--contact-bot.js |--README.md |--tutorials | |--google-cloud-shell-tutorial.md |--ding-dong-bot.tsCopy the code

The hard dish

Basic wechat robot is not much to say, the directory of example, you can also look at the document

Personal wechat payment API

Straight men directly on the test code, directly on the hard dish bar, for personal wechat collection API, know people understand, this thing is very contrary day, notes write very clear, if there is a question, see the message area.

New examples/pay. Js

const { Wechaty } = require("wechaty");
// const request = require("request");

function onScan(qrcode, status) {
  // Display the qr code in the console
  require("qrcode-terminal").generate(qrcode, { small: true });

  const qrcodeImageUrl = [
    "https://api.qrserver.com/v1/create-qr-code/?data=".encodeURIComponent(qrcode),
  ].join("");

  console.log(qrcodeImageUrl);
}

/ / login
function onLogin(user) {
  console.log(`${user} login`);
}

/ / logout
function onLogout(user) {
  console.log(`${user} logout`);
}

/ / sendPayment (0.01, 1562577831000)
function sendPayment(priceAmount, timestamp) {
  console.log(priceAmount, timestamp);

  // const options = {
  // method: 'POST',
  // url: 'https://api.callbackurl.com/callback',
  // headers:
  / / {
  // 'content-type': 'application/json',
  // token: 'usertoken-callback' },
  // body: {
  // price_amount: priceAmount,
  // timestamp: timestamp
  / /},
  // json: true
  / /};

  // request(options, function (error, response, body) {
  // if (error) throw new Error(error);
  // });
}

// The message is from "wechat Pay", the message format is "wechat Pay collection 0.01 yuan"
async function onMessage(msg) {
  // Messages that are 5 minutes old are not processed
  if (msg.age() > 300) {
    return;
  }

  console.log("msg :>> ".JSON.stringify(msg, null.2));
  const contact = msg.talker();
  console.log("contact: ", contact);
  const text = msg.text();
  console.log("text: ", text);
  const msgDate = msg.date();
  console.log("msgDate: ", msgDate);

  // if (msg.type() ! == bot.Message.Type.Attachment && ! msg.self()) {
  // console.log(' Message discarded due to mismatch with payment attachment :>> ', MSG);
  // return;
  // }

  // Non-wechat Pay
  if(contact.name() ! = ="Wechat Pay") {
    // You can do text matching, speech recognition, image processing, etc
    console.log("Non-wechat Pay", contact.name());
    return;
  }

  const strs = text.split("Yuan");
  console.log('strs: ', strs);
  if (strs.length >= 1) {
    const str = strs[0];
    const strs2 = str.split("Wechat Pay Collection");
    if (strs2.length >= 1) {
      console.log('strs2: ', strs2, msgDate);
      const priceStr = strs2[1];
      sendPayment(parseFloat(priceStr), msgDate.getTime()); }}}/ / instantiate
const bot = new Wechaty();

// Register the event
bot.on("scan", onScan);
bot.on("login", onLogin);
bot.on("logout", onLogout);
bot.on("message", onMessage);

bot
  .start()
  .then(() = > console.log("Huamiao wechat bot Started."))
  .catch((e) = > console.error(e));
Copy the code

Execute ts-node examples/pay.js:

Ts -node examples/pay. Js Huamiao wechat bot Started. ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▄ ▄ ▄ ▄ ▄ █ ▄ ▀ ▀ ▄ █ █ ▀ █ ▄ ▄ █ ▄ ▄ ▄ ▄ ▄ █ █ █ █ █ █ ▀ █ ▀ ▄ ▀ █ █ █ █ █ █ ▄ ▄ ▄ █ █ ▄ █ ▀ ▄ █ ▀ ▄ ▀ ▀ █ █ █ ▄ ▄ ▄ █ █ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▄ █ █ █ █ ▄ ▀ ▄ ▀ ▄ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ █ ▄ ▄ ▄ ▄ ▀ █ ▄ ▀ ▄ █ ▄ ▄ ▄ ▄ ▀ ▄ ▀ █ ▀ ▀ ▄ ▄ █ █ █ ▄ █ █ ▄ █ ▄ ▄ █ ▄ ▄ ▀ ▀ ▄ █ ▀ █ ▄ ▄ █ ▀ █ ▄ ▄ ▀ █ █ ▀ ▄ ▄ ▀ ▀ ▄ ▀ ▄ ▄ ▀ ▄ █ ▄ █ █ ▄ ▀ █ █ ▄ ▀ ▀ █ █ ▀ █ ▄ ▀ ▄ ▄ ▄ ▄ ▄ █ █ █ ▄ ▄ ▄ ▄ ▀ █ ▄ ▄ █ █ ▄ █ █ █ █ ▄ ▀ █ █ ▄ ▄ ▀ ▄ ▀ ▄ ▄ █ ▄ ▀ █ █ █ ▄ █ ▀ ▀ ▀ ▄ ▀ ▄ ▄ ▄ ▀ █ █ ▄ ▄ ▄ ▀ ▀ █ ▀ ▀ ▀ ▄ ▀ █ █ █ █ █ █ ▄ █ ▄ █ █ ▄ ▄ ▀ ▀ █ █ ▀ ▀ ▀ ▀ ▀ ▄ ▄ ▄ ▀ ▀ █ █ ▄ ▄ ▄ ▄ ▄ █ █ █ ▀ ▀ ▀ ▀ █ █ █ ▄ █ ▄ █ █ ▄ █ █ █ █ █ █ ▀ ▄ █ █ ▀ ▀ ▄ ▄ █ ▀ ▄ ▀ ▄ ▄ █ █ █ ▄ ▄ ▄ █ █ ▀ █ ▀ ▄ █ ▀ █ ▄ █ █ ▄ ▀ ▀ ▄ ▀ ▄ █ █ ▄ ▄ ▄ ▄ ▄ ▄ ▄ █ ▄ █ ▄ ▄ █ █ █ ▄ █ █ █ ▄ ▄ ▄ █ █ ▄ █ █ ▄ █ █https://api.qrserver.com/v1/create-qr-code/?data=https%3A%2F%2Flogin.weixin.qq.com%2Fl%2F4Yv_xf9vGg%3D%3D
Contact<*****> login
Copy the code

Send a random message to a robot on wechat

Sarah hey

msg :>>  {
  "_events": {},
  "_eventsCount": 0."id": "2590156425118338735"."payload": {
    "filename": "2590156425118338735.1"."fromId": "@9c8dce87685d1f77d1e60c10e6461a28"."id": "2590156425118338735"."mentionIdList": []."text": "Sarah hey yo!"."timestamp": 1627084743."type": 7."toId": "@93d4f89c6634276de1cee00dc04c7bfacfc5280a6719709d34939de9f85b2dc8"}}contact:  WechatifiedContact {
  _events: [Object: null prototype] {},
  _eventsCount: 0._maxListeners: undefined.id: '@9c8dce87685d1f77d1e60c10e6461a28'.payload: {
    address: ' '.alias: ' '.avatar: '[Sender's profile picture]'.city: 'Xiamen'.friend: true.gender: 2.id: '@9c8dce87685d1f77d1e60c10e6461a28'.name: '[Nickname of sender]'.province: '[sender's province]'.signature: '[Sender's signature]'.star: false.type: undefined.weixin: ' '},Symbol(kCapture)]: false
}
text: Sarah heymsgDate:  2021-07-23T23:59:03.000z Non-wechat Pay [nickname of sender]Copy the code
Scan the code to pay 0.01

The logs are as follows:

msg :>>  {
  "_events": {},
  "_eventsCount": 0."id": "1955540408489542411"."payload": {
    "filename": "Wechat Pay collection 0.01 yuan (friends to the store).49"."fromId": "@953b0beb1f938d176f9feb47fbbefeff"."id": "1955540408489542411"."mentionIdList": []."text": "&lt;msg&gt; &lt;appmsg appid=\"\" sdkver=\"0\"&gt; \t&lt;title&gt;&lt;![CDATA[微信支付收款0.01元(朋友到店)]]&gt;&lt;/title&gt; \t&lt;des&gt;&lt;![CDATA[收款金额¥0.01<br/>付款方备注呃呃呃<br/>汇总今日第1笔收款,共计¥0.01<br/>备注收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/des&gt; \t&lt;action&gt;&lt;/action&gt; \t&lt;type&gt;5&lt;/type&gt; \t&lt;showtype&gt;1&lt;/showtype&gt;     &lt;soundtype&gt;0&lt;/soundtype&gt; \t&lt;content&gt;&lt;![CDATA[]]&gt;&lt;/content&gt; \t&lt;contentattr&gt;0&lt;/contentattr&gt; \t&lt;url&gt;&lt;![CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/jumpuserroll?trans_id=10001071012021072400967369119169&amp;accid=085e9858e625b35f6a70ef63d]]&gt;&lt;/url&gt; \t&lt;lowurl&gt;&lt;![CDATA[]]&gt;&lt;/lowurl&gt; \t&lt;appattach&gt; \t\t&lt;totallen&gt;0&lt;/totallen&gt; \t\t&lt;attachid&gt;&lt;/attachid&gt; \t\t&lt;fileext&gt;&lt;/fileext&gt; \t\t&lt;cdnthumburl&gt;&lt;![CDATA[]]&gt;&lt;/cdnthumburl&gt; \t\t&lt;cdnthumbaeskey&gt;&lt;![CDATA[]]&gt;&lt;/cdnthumbaeskey&gt; \t\t&lt;aeskey&gt;&lt;![CDATA[]]&gt;&lt;/aeskey&gt; \t&lt;/appattach&gt; \t&lt;extinfo&gt;&lt;/extinfo&gt; \t&lt;sourceusername&gt;&lt;/sourceusername&gt; \t&lt;sourcedisplayname&gt;&lt;![CDATA[]]&gt;&lt;/sourcedisplayname&gt; \t&lt;mmreader&gt; \t\t&lt;category type=\"0\" count=\"1\"&gt; \t\t\t&lt;name&gt;&lt;![CDATA[微信支付]]&gt;&lt;/name&gt; \t\t\t&lt;topnew&gt; \t\t\t\t&lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt; \t\t\t\t&lt;width&gt;0&lt;/width&gt; \t\t\t\t&lt;height&gt;0&lt;/height&gt; \t\t\t\t&lt;digest&gt;&lt;![CDATA[收款金额¥0.01<br/>付款方备注呃呃呃<br/>汇总今日第1笔收款,共计¥0.01<br/>备注收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/digest&gt; \t\t\t&lt;/topnew&gt; \t\t\t\t&lt;item&gt; \t&lt;itemshowtype&gt;4&lt;/itemshowtype&gt; \t&lt;title&gt;&lt;![CDATA[收款到账通知]]&gt;&lt;/title&gt; \t&lt;url&gt;&lt;![CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/jumpuserroll?trans_id=10001071012021072400967369119169&amp;accid=085e9858e625b35f6a70ef63d]]&gt;&lt;/url&gt; \t&lt;shorturl&gt;&lt;![CDATA[]]&gt;&lt;/shorturl&gt; \t&lt;longurl&gt;&lt;![CDATA[]]&gt;&lt;/longurl&gt; \t&lt;pub_time&gt;1627084128&lt;/pub_time&gt; \t&lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt; \t&lt;tweetid&gt;&lt;/tweetid&gt; \t&lt;digest&gt;&lt;![CDATA[收款金额¥0.01<br/>付款方备注呃呃呃<br/>汇总今日第1笔收款,共计¥0.01<br/>备注收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/digest&gt; \t&lt;fileid&gt;0&lt;/fileid&gt; \t&lt;sources&gt; \t&lt;source&gt; \t&lt;name&gt;&lt;![CDATA[微信支付]]&gt;&lt;/name&gt; \t&lt;/source&gt; \t&lt;/sources&gt; \t&lt;styles&gt;&lt;topColor&gt;&lt;![CDATA[]]&gt;&lt;/topColor&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{4,5}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{15,3}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{21,15}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{39,18}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;/styles&gt;\t&lt;native_url&gt;&lt;/native_url&gt;    &lt;del_flag&gt;0&lt;/del_flag&gt;     &lt;contentattr&gt;0&lt;/contentattr&gt;     &lt;play_length&gt;0&lt;/play_length&gt; \t&lt;play_url&gt;&lt;![CDATA[]]&gt;&lt;/play_url&gt; \t&lt;player&gt;&lt;![CDATA[]]&gt;&lt;/player&gt; \t&lt;template_op_type&gt;1&lt;/template_op_type&gt; \t&lt;weapp_username&gt;&lt;![CDATA[gh_fac0ad4c321d@app]]&gt;&lt;/weapp_username&gt; \t&lt;weapp_path&gt;&lt;![CDATA[pages/index/index.html]]&gt;&lt;/weapp_path&gt; \t&lt;weapp_version&gt;670&lt;/weapp_version&gt; \t&lt;weapp_state&gt;0&lt;/weapp_state&gt;     &lt;music_source&gt;0&lt;/music_source&gt;     &lt;pic_num&gt;0&lt;/pic_num&gt; \t&lt;show_complaint_button&gt;0&lt;/show_complaint_button&gt; \t&lt;vid&gt;&lt;![CDATA[]]&gt;&lt;/vid&gt; \t&lt;recommendation&gt;&lt;![CDATA[]]&gt;&lt;/recommendation&gt; \t&lt;pic_urls&gt;&lt;/pic_urls&gt;\t&lt;comment_topic_id&gt;0&lt;/comment_topic_id&gt;\t&lt;cover_235_1&gt;&lt;![CDATA[]]&gt;&lt;/cover_235_1&gt; \t&lt;cover_1_1&gt;&lt;![CDATA[]]&gt;&lt;/cover_1_1&gt;     &lt;cover_16_9&gt;&lt;![CDATA[]]&gt;&lt;/cover_16_9&gt;     &lt;appmsg_like_type&gt;0&lt;/appmsg_like_type&gt;     &lt;video_width&gt;0&lt;/video_width&gt;     &lt;video_height&gt;0&lt;/video_height&gt;     &lt;is_pay_subscribe&gt;0&lt;/is_pay_subscribe&gt; \t&lt;general_string&gt;&lt;/general_string&gt; \t&lt;/item&gt; \t\t&lt;/category&gt; \t\t&lt;publisher&gt; \t\t\t&lt;username&gt;&lt;/username&gt; \t\t\t&lt;nickname&gt;&lt;![CDATA[微信支付]]&gt;&lt;/nickname&gt; \t\t&lt;/publisher&gt; \t\t&lt;template_header&gt;&lt;title&gt;&lt;![CDATA[收款到账通知]]&gt;&lt;/title&gt;<br/>&lt;title_color&gt;&lt;![CDATA[]]&gt;&lt;/title_color&gt;<br/>&lt;pub_time&gt;1627084128&lt;/pub_time&gt;<br/>&lt;first_data&gt;&lt;![CDATA[]]&gt;&lt;/first_data&gt;<br/>&lt;first_color&gt;&lt;![CDATA[]]&gt;&lt;/first_color&gt;<br/>&lt;hide_title_and_time&gt;1&lt;/hide_title_and_time&gt;<br/>&lt;show_icon_and_display_name&gt;0&lt;/show_icon_and_display_name&gt;<br/>&lt;display_name&gt;&lt;![CDATA[]]&gt;&lt;/display_name&gt;<br/>&lt;icon_url&gt;&lt;![CDATA[]]&gt;&lt;/icon_url&gt;<br/>&lt;hide_icon_and_display_name_line&gt;1&lt;/hide_icon_and_display_name_line&gt;<br/>&lt;header_jump_url&gt;&lt;![CDATA[]]&gt;&lt;/header_jump_url&gt;<br/>&lt;shortcut_icon_url&gt;&lt;![CDATA[]]&gt;&lt;/shortcut_icon_url&gt;<br/>&lt;ignore_hide_title_and_time&gt;1&lt;/ignore_hide_title_and_time&gt;<br/>&lt;hide_time&gt;1&lt;/hide_time&gt;<br/>&lt;pay_style&gt;1&lt;/pay_style&gt;<br/>&lt;header_jump_type&gt;0&lt;/header_jump_type&gt;<br/>&lt;display_name_desc&gt;&lt;![CDATA[]]&gt;&lt;/display_name_desc&gt;<br/>&lt;show_right_icon_and_desc_name&gt;0&lt;/show_right_icon_and_desc_name&gt;<br/>&lt;right_icon_url&gt;&lt;![CDATA[]]&gt;&lt;/right_icon_url&gt;<br/>&lt;right_desc_name&gt;&lt;![CDATA[]]&gt;&lt;/right_desc_name&gt;<br/>&lt;finder_user_name&gt;&lt;![CDATA[]]&gt;&lt;/finder_user_name&gt;<br/>&lt;show_finder_feed_entry&gt;0&lt;/show_finder_feed_entry&gt;<br/>&lt;finder_feedid&gt;&lt;![CDATA[]]&gt;&lt;/finder_feedid&gt;<br/>&lt;finder_nonceid&gt;&lt;![CDATA[]]&gt;&lt;/finder_nonceid&gt;<br/>&lt;finder_feed_thumnail&gt;&lt;![CDATA[]]&gt;&lt;/finder_feed_thumnail&gt;<br/>&lt;transaction_id&gt;&lt;![CDATA[]]&gt;&lt;/transaction_id&gt;<br/>&lt;/template_header&gt; \t\t&lt;template_detail&gt;&lt;template_show_type&gt;1&lt;/template_show_type&gt;<br/>&lt;text_content&gt;<br/>&lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt;<br/>&lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt;<br/>&lt;color&gt;&lt;![CDATA[]]&gt;&lt;/color&gt;<br/>&lt;/text_content&gt;<br/>&lt;line_content&gt;<br/>&lt;topline&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[收款金额]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;hide_dash_line&gt;1&lt;/hide_dash_line&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[¥0.01]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;small_text_count&gt;1&lt;/small_text_count&gt;<br/>&lt;/value&gt;<br/>&lt;/topline&gt;<br/>&lt;lines&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[付款方备注]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[呃呃呃]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[汇总]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[今日第1笔收款,共计¥0.01]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[备注]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;/lines&gt;<br/>&lt;/line_content&gt;<br/>&lt;opitems&gt;<br/>&lt;opitem&gt;<br/>&lt;word&gt;&lt;![CDATA[收款小账本]]&gt;&lt;/word&gt;<br/>&lt;url&gt;&lt;![CDATA[]]&gt;&lt;/url&gt;<br/>&lt;icon&gt;&lt;![CDATA[]]&gt;&lt;/icon&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;weapp_username&gt;&lt;![CDATA[gh_fac0ad4c321d@app]]&gt;&lt;/weapp_username&gt;<br/>&lt;weapp_path&gt;&lt;![CDATA[pages/index/index.html]]&gt;&lt;/weapp_path&gt;<br/>&lt;op_type&gt;1&lt;/op_type&gt;<br/>&lt;weapp_version&gt;670&lt;/weapp_version&gt;<br/>&lt;weapp_state&gt;0&lt;/weapp_state&gt;<br/>&lt;hint_word&gt;&lt;![CDATA[]]&gt;&lt;/hint_word&gt;<br/>&lt;is_rich_text&gt;0&lt;/is_rich_text&gt;<br/>&lt;display_line_number&gt;0&lt;/display_line_number&gt;<br/>&lt;general_string&gt;&lt;![CDATA[]]&gt;&lt;/general_string&gt;<br/>&lt;/opitem&gt;<br/>&lt;show_type&gt;1&lt;/show_type&gt;<br/>&lt;/opitems&gt;<br/>&lt;new_tmpl_type&gt;0&lt;/new_tmpl_type&gt;<br/>&lt;/template_detail&gt; \t    &lt;forbid_forward&gt;0&lt;/forbid_forward&gt;         &lt;notify_msg&gt;&lt;/notify_msg&gt; \t&lt;/mmreader&gt; \t&lt;thumburl&gt;&lt;![CDATA[]]&gt;&lt;/thumburl&gt; \t     &lt;template_id&gt;&lt;![CDATA[ey45ZWkUmYUBk_fMgxBLvyaFqVop1rmoWLFd62OXGiU]]&gt;&lt;/template_id&gt;                          \t &lt;/appmsg&gt;&lt;fromusername&gt;&lt;/fromusername&gt;&lt;appinfo&gt;&lt;version&gt;0&lt;/version&gt;&lt;appname&gt;&lt;![CDATA[微信支付]]&gt;&lt;/appname&gt;&lt;isforceupdate&gt;1&lt;/isforceupdate&gt;&lt;/appinfo&gt;&lt;/msg&gt;"."timestamp": 1627084128."type": 1."toId": "@c3bffbe645b2f649a5e8c50031cd2c4e0fc64ac0492659288a8d58c81656bd5e"
  }
}
contact:  WechatifiedContact {
  _events: [Object: null prototype] {},
  _eventsCount: 0,
  _maxListeners: undefined,
  id: '@953b0beb1f938d176f9feb47fbbefeff', payload: { address: '', alias: '', avatar: '/cgi-bin/mmwebwx-bin/webwxgeticon? seq=684602449&username=@953b0beb1f938d176f9feb47fbbefeff&skey=',
    city: '',
    friend: true,
    gender: 0,
    id: '@953B0beb1f938d176f9feb47fbbefeff ', name: 'WeChat pay, province: "Guangdong", people like:' to help solve the difficulty in paying WeChat, collect Suggestions for WeChat payment feedback. ', star:false,
    type: 2,
    weixin: ''
  },
  [Symbol(kCapture)]: false} text: &lt; msg&gt; &lt; appmsg appid="" sdkver="0"&gt; &lt; title&gt; &lt; ! [CDATA] Wechat Pay collection0.01Yuan (friend to shop)]]&gt; &lt; /title&gt; &lt; des&gt; &lt; ! [CDATA[Payment amount ¥0.01<br/> Payer's remarks. <br/> Summary today1Pen collection, a total of ¥0.01<br/> Remarks Received successfully, the change has been deposited. Click for details]]&gt; &lt; /des&gt; &lt; action&gt; &lt; /action&gt; &lt; type&gt;5&lt; /type&gt; &lt; showtype&gt;1&lt; /showtype&gt; &lt; soundtype&gt;0&lt; /soundtype&gt; &lt; content&gt; &lt; ! [CDATA[]]&gt; &lt; /content&gt; &lt; contentattr&gt;0&lt; /contentattr&gt; &lt; url&gt; &lt; ! [CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/jumpuserroll?trans_id=10001071012021072400967369119169&amp;accid=085e9858e625b35f6a70ef63d]]&gt;&lt;/url&gt;        &lt;lowurl&gt;&lt;![CDATA[]]&gt;&lt;/lowurl&gt;         &lt;appattach&gt;               &lt;totallen&gt;0&lt;/totallen&gt;                 &lt;attachid&gt;&lt;/attachid&gt;               &lt;fileext&gt;&lt;/fileext&gt;                 &lt;cdnthumburl&gt;&lt;![CDATA[]]&gt;&lt;/cdnthumburl&gt;          &lt;cdnthumbaeskey&gt;&lt;![CDATA[]]&gt;&lt;/cdnthumbaeskey&gt;                 &lt;aeskey&gt;&lt;![CDATA[]]&gt;&lt;/aeskey&gt;    &lt;/appattach&gt;      &lt;extinfo&gt;&lt;/extinfo&gt;         &lt;sourceusername&gt;&lt;/sourceusername&gt;      &lt;sourcedisplayname&gt;&lt;![CDATA[]]&gt;&lt;/sourcedisplayname&gt;   &lt;mmreader&gt;                &lt;category type="0" count="1"&gt;                        &lt;name&gt;&lt;![CDATA[微信支付]]&gt;&lt;/name&gt;                     &lt;topnew&gt;    &lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt;                            &lt;width&gt;0&lt;/width&gt;                            &lt;height&gt;0&lt;/height&gt;                             &lt;digest&gt;&lt;![CDATA[收款金额¥0.01<br/>付款方备注呃呃呃<br/>汇总今日第1笔收款,共计¥0.01<br/>备注收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/digest&gt;                  &lt;/topnew&gt;                                 &lt;item&gt;       &lt;itemshowtype&gt;4&lt;/itemshowtype&gt;      &lt;title&gt;&lt;![CDATA[收款到账通知]]&gt;&lt;/title&gt;       &lt;url&gt;&lt;![CDATA[https://wx.tenpay.com/cgi-bin/mmpayweb-bin/jumpuserroll?trans_id=10001071012021072400967369119169&amp;accid=085e9858e625b35f6a70ef63d]]&gt;&lt;/url&gt;        &lt;shorturl&gt;&lt;![CDATA[]]&gt;&lt;/shorturl&gt;     &lt;longurl&gt;&lt;![CDATA[]]&gt;&lt;/longurl&gt; &lt;pub_time&gt;1627084128&lt;/pub_time&gt;      &lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt;   &lt;tweetid&gt;&lt;/tweetid&gt;         &lt;digest&gt;&lt;![CDATA[收款金额¥0.01<br/>付款方备注呃呃呃<br/>汇总今日第1笔收款,共计¥0.01<br/>备注收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/digest&gt;     &lt;fileid&gt;0&lt;/fileid&gt;  &lt;sources&gt;         &lt;source&gt;  &lt;name&gt;&lt;![CDATA[微信支付]]&gt;&lt;/name&gt;        &lt;/source&gt;         &lt;/sources&gt;        &lt;styles&gt;&lt;topColor&gt;&lt;![CDATA[]]&gt;&lt;/topColor&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{4,5}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{15,3}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{21,15}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;style&gt;<br/>&lt;range&gt;&lt;![CDATA[{39,18}]]&gt;&lt;/range&gt;<br/>&lt;font&gt;&lt;![CDATA[s]]&gt;&lt;/font&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/style&gt;<br/>&lt;/styles&gt;        &lt;native_url&gt;&lt;/native_url&gt;    &lt;del_flag&gt;0&lt;/del_flag&gt;     &lt;contentattr&gt;0&lt;/contentattr&gt;     &lt;play_length&gt;0&lt;/play_length&gt;         &lt;play_url&gt;&lt;![CDATA[]]&gt;&lt;/play_url&gt;     &lt;player&gt;&lt;![CDATA[]]&gt;&lt;/player&gt;         &lt;template_op_type&gt;1&lt;/template_op_type&gt;         &lt;weapp_username&gt;&lt;![CDATA[gh_fac0ad4c321d@app]]&gt;&lt;/weapp_username&gt;      &lt;weapp_path&gt;&lt;![CDATA[pages/index/index.html]]&gt;&lt;/weapp_path&gt;      &lt;weapp_version&gt;670&lt;/weapp_version&gt;  &lt;weapp_state&gt;0&lt;/weapp_state&gt;     &lt;music_source&gt;0&lt;/music_source&gt;     &lt;pic_num&gt;0&lt;/pic_num&gt;       &lt;show_complaint_button&gt;0&lt;/show_complaint_button&gt;       &lt;vid&gt;&lt;![CDATA[]]&gt;&lt;/vid&gt;       &lt;recommendation&gt;&lt;![CDATA[]]&gt;&lt;/recommendation&gt;    &lt;pic_urls&gt;&lt;/pic_urls&gt;       &lt;comment_topic_id&gt;0&lt;/comment_topic_id&gt;      &lt;cover_235_1&gt;&lt;![CDATA[]]&gt;&lt;/cover_235_1&gt;  &lt;cover_1_1&gt;&lt;![CDATA[]]&gt;&lt;/cover_1_1&gt;     &lt;cover_16_9&gt;&lt;![CDATA[]]&gt;&lt;/cover_16_9&gt;     &lt;appmsg_like_type&gt;0&lt;/appmsg_like_type&gt;     &lt;video_width&gt;0&lt;/video_width&gt;     &lt;video_height&gt;0&lt;/video_height&gt;     &lt;is_pay_subscribe&gt;0&lt;/is_pay_subscribe&gt;   &lt;general_string&gt;&lt;/general_string&gt;   &lt;/item&gt;              &lt;/category&gt;               &lt;publisher&gt;                       &lt;username&gt;&lt;/username&gt;                 &lt;nickname&gt;&lt;![CDATA[微信支付]]&gt;&lt;/nickname&gt;              &lt;/publisher&gt;              &lt;template_header&gt;&lt;title&gt;&lt;![CDATA[收款到账通知]]&gt;&lt;/title&gt;<br/>&lt;title_color&gt;&lt;![CDATA[]]&gt;&lt;/title_color&gt;<br/>&lt;pub_time&gt;1627084128&lt;/pub_time&gt;<br/>&lt;first_data&gt;&lt;![CDATA[]]&gt;&lt;/first_data&gt;<br/>&lt;first_color&gt;&lt;![CDATA[]]&gt;&lt;/first_color&gt;<br/>&lt;hide_title_and_time&gt;1&lt;/hide_title_and_time&gt;<br/>&lt;show_icon_and_display_name&gt;0&lt;/show_icon_and_display_name&gt;<br/>&lt;display_name&gt;&lt;![CDATA[]]&gt;&lt;/display_name&gt;<br/>&lt;icon_url&gt;&lt;![CDATA[]]&gt;&lt;/icon_url&gt;<br/>&lt;hide_icon_and_display_name_line&gt;1&lt;/hide_icon_and_display_name_line&gt;<br/>&lt;header_jump_url&gt;&lt;![CDATA[]]&gt;&lt;/header_jump_url&gt;<br/>&lt;shortcut_icon_url&gt;&lt;![CDATA[]]&gt;&lt;/shortcut_icon_url&gt;<br/>&lt;ignore_hide_title_and_time&gt;1&lt;/ignore_hide_title_and_time&gt;<br/>&lt;hide_time&gt;1&lt;/hide_time&gt;<br/>&lt;pay_style&gt;1&lt;/pay_style&gt;<br/>&lt;header_jump_type&gt;0&lt;/header_jump_type&gt;<br/>&lt;display_name_desc&gt;&lt;![CDATA[]]&gt;&lt;/display_name_desc&gt;<br/>&lt;show_right_icon_and_desc_name&gt;0&lt;/show_right_icon_and_desc_name&gt;<br/>&lt;right_icon_url&gt;&lt;![CDATA[]]&gt;&lt;/right_icon_url&gt;<br/>&lt;right_desc_name&gt;&lt;![CDATA[]]&gt;&lt;/right_desc_name&gt;<br/>&lt;finder_user_name&gt;&lt;![CDATA[]]&gt;&lt;/finder_user_name&gt;<br/>&lt;show_finder_feed_entry&gt;0&lt;/show_finder_feed_entry&gt;<br/>&lt;finder_feedid&gt;&lt;![CDATA[]]&gt;&lt;/finder_feedid&gt;<br/>&lt;finder_nonceid&gt;&lt;![CDATA[]]&gt;&lt;/finder_nonceid&gt;<br/>&lt;finder_feed_thumnail&gt;&lt;![CDATA[]]&gt;&lt;/finder_feed_thumnail&gt;<br/>&lt;transaction_id&gt;&lt;![CDATA[]]&gt;&lt;/transaction_id&gt;<br/>&lt;/template_header&gt;               &lt;template_detail&gt;&lt;template_show_type&gt;1&lt;/template_show_type&gt;<br/>&lt;text_content&gt;<br/>&lt;cover&gt;&lt;![CDATA[]]&gt;&lt;/cover&gt;<br/>&lt;text&gt;&lt;![CDATA[]]&gt;&lt;/text&gt;<br/>&lt;color&gt;&lt;![CDATA[]]&gt;&lt;/color&gt;<br/>&lt;/text_content&gt;<br/>&lt;line_content&gt;<br/>&lt;topline&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[收款金额]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;hide_dash_line&gt;1&lt;/hide_dash_line&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[¥0.01]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;small_text_count&gt;1&lt;/small_text_count&gt;<br/>&lt;/value&gt;<br/>&lt;/topline&gt;<br/>&lt;lines&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[付款方备注]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[呃呃呃]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[汇总]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[今日第1笔收款,共计¥0.01]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;line&gt;<br/>&lt;key&gt;<br/>&lt;word&gt;&lt;![CDATA[备注]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#888888]]&gt;&lt;/color&gt;<br/>&lt;/key&gt;<br/>&lt;value&gt;<br/>&lt;word&gt;&lt;![CDATA[收款成功,已存入零钱。点击可查看详情]]&gt;&lt;/word&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;/value&gt;<br/>&lt;/line&gt;<br/>&lt;/lines&gt;<br/>&lt;/line_content&gt;<br/>&lt;opitems&gt;<br/>&lt;opitem&gt;<br/>&lt;word&gt;&lt;![CDATA[收款小账本]]&gt;&lt;/word&gt;<br/>&lt;url&gt;&lt;![CDATA[]]&gt;&lt;/url&gt;<br/>&lt;icon&gt;&lt;![CDATA[]]&gt;&lt;/icon&gt;<br/>&lt;color&gt;&lt;![CDATA[#000000]]&gt;&lt;/color&gt;<br/>&lt;weapp_username&gt;&lt;![CDATA[gh_fac0ad4c321d@app]]&gt;&lt;/weapp_username&gt;<br/>&lt;weapp_path&gt;&lt;![CDATA[pages/index/index.html]]&gt;&lt;/weapp_path&gt;<br/>&lt;op_type&gt;1&lt;/op_type&gt;<br/>&lt;weapp_version&gt;670&lt;/weapp_version&gt;<br/>&lt;weapp_state&gt;0&lt;/weapp_state&gt;<br/>&lt;hint_word&gt;&lt;![CDATA[]]&gt;&lt;/hint_word&gt;<br/>&lt;is_rich_text&gt;0&lt;/is_rich_text&gt;<br/>&lt;display_line_number&gt;0&lt;/display_line_number&gt;<br/>&lt;general_string&gt;&lt;![CDATA[]]&gt;&lt;/general_string&gt;<br/>&lt;/opitem&gt;<br/>&lt;show_type&gt;1&lt;/show_type&gt;<br/>&lt;/opitems&gt;<br/>&lt;new_tmpl_type&gt;0&lt;/new_tmpl_type&gt;<br/>&lt;/template_detail&gt;             &lt;forbid_forward&gt;0&lt;/forbid_forward&gt;         &lt;notify_msg&gt;&lt;/notify_msg&gt;   &lt;/mmreader&gt;       &lt;thumburl&gt;&lt;![CDATA[]]&gt;&lt;/thumburl&gt;          &lt;template_id&gt;&lt;![CDATA[ey45ZWkUmYUBk_fMgxBLvyaFqVop1rmoWLFd62OXGiU]]&gt;&lt;/template_id&gt;                                   &lt;/appmsg&gt;&lt;fromusername&gt;&lt;/fromusername&gt;&lt;appinfo&gt;&lt;version&gt;0&lt;/version&gt;&lt;appname&gt;&lt;![CDATA[微信支付]]&gt;&lt;/appname&gt;&lt;isforceupdate&gt;1&lt;/isforceupdate&gt;&lt;/appinfo&gt;&lt;/msg&gt;
msgDate:  202107 -- 23T23:48:48.000Z
0.01 1627084128000
Copy the code

Write a wechat robot in Python, like gold mining, automatic welcome, automatic invitation, etc. | Python theme month

Node Back-end service

[scaffolding] [open source] NestJS + TypeORm, back-end rapid development scaffolding, default use mysql, the back can be according to the development needs to access GraphQL, MongoDB, Redis and so on

Do you think this cat technology stack, welcome three consecutive rush more you are interested in technology ~

Want to get started with MySQL FEer

If you are interested in getting started with the mysql front end, you can leave a comment, like, or bookmark

Application scenarios

Ben also organized the following scenes, more good ideas are welcome to share

  • Single chat interface can achieve such as sending Python, push the TWO-DIMENSIONAL code of Python wechat group, more than the number can also simulate push group invitation, My cat tried, can be left for friends to dig homework. The invitation link and the QR code will expire. Ben meow also has an idea that when it is about to expire, use the group main number (because the invitation will be followed by the group main) to take screenshots or send them to the file assistant and write them into the database, so that the group invitation or THE QR code will not be sent by people. But there is no API for the invitation group for the time being
  • The maximum number of wechat groups is 500, and multiple groups can be synchronized
  • Custom time period reply (the same robot of excellent arc boss)
  • Pull groups based on responses
  • Automatically welcomes new group members
  • Group message repository, backup, analysis, statistics, display and so on
  • Responsible for third-party client, chat tool, statistical analysis, and customer service assessment (business)
  • Message prevention retraction
  • Send wechat messages regularly
  • Message monitoring, custom reply messages

Write a wechat robot in Python, like gold mining, automatic welcome, automatic invitation, etc. | Python theme month

The reverse use test of iPad can be used normally

export WECHATY_PUPPET_PADLOCAL_TOKEN=puppet_padlocal_0cc9f828689f48a1a767ae533a85c5b5
export WECHATY_PUPPET=wechaty-puppet-padlocal
ts-node examples/pay.js

yarn start
Copy the code

Not recommended, the token price is 200 yuan for 30 days, too expensive pad-local.com/#/tokens non-meow charge ~ if you insist to buy a cup of milk tea for meow is not impossible 😊, we first point bozan not 😛 ~ usually have such requirements of handsome pot beautiful women, Meow will meet them ~

This cat specially tested the next, the use is ok, the hint is iPad login, not recommended, not recommended, not recommended, because we are white whao strange

Left hand and right hand in slow motion

abnormal

Welcome to submit all kinds of errors, Ben meow is free oh will help you look at ~

  • Rm-f ~/.npm/_libvips/ libvips-8.10.0-darwina-x64.tar.br is invalid
  • Reference: chrome error stackoverflow.com/questions/5…

Bye ~

First of all, I will translate the official document when I have time. I will go to make up for the cage sleep