微信公众号开发基础

开发文档

登录公众号平台:https://mp.weixin.qq.com/

微信公众平台提供哪些服务

针对不同类型的公众号(服务号、订阅号、小程序和企业微信)有不同的功能侧重:
服务号:
提供用户服务:服务号为用户提供更深度的服务交互体验,适合企业或组织进行客户服务、业务处理等。
消息推送:每月可发送4条群发消息,直接显示在用户的聊天列表中,触达率较高。
功能接口:支持更多的高级接口权限,如自定义菜单、模板消息、用户管理、支付功能、卡券功能等。
订阅号:
内容传播:主要用于媒体和个人内容创作者发布文章、资讯等内容,每天可以推送一条群发消息。
信息展示:订阅号的群发消息会折叠在用户的订阅号文件夹中,用户需手动点击查阅。
用户互动:尽管推送频率较高,但相比服务号,在消息触达及时性上相对较弱。
小程序:
应用服务:无需下载安装即可使用的轻应用,提供各种工具、游戏、电商、生活服务等功能。
前端界面:通过微信内访问,具备原生APP的部分体验,用户使用后可在历史列表快速找回。
功能集成:可以调用微信提供的丰富API,实现地理位置获取、支付、社交分享等功能。
企业微信(原企业号):
组织管理:为企业内部沟通协作设计,包括公告通知、打卡考勤、审批流程、会议、企业邮箱等办公场景。
客户关系管理:可以添加客户并进行消息沟通,适用于客服接待、客户维系等工作。
第三方应用集成:支持与企业内部系统及第三方应用的对接,帮助企业实现移动办公自动化。
选择哪种类型的服务取决于企业和个人的具体需求,例如内容产出、客户服务、产品销售、内部管理等。
提供的服务:
1.消息回复(群发消息,被动回复消息,客服消息,通知模版消息)
2.公众号内网页:微信JS-SDK

开发者需要按照如下步骤完成:

微信公众号测试号:快速了解和上手微信公众号开发;

1.1 填写服务器配置

1.2 验证服务器地址的有效性

开发者提交信息后,微信服务器将发送GET请求到填写的服务器地址URL上,

private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
        return true;
    }else{
        return false;
    }
}

有官方提供的示例代码如下:
在这里插入图片描述

1.3 依据接口文档实现业务逻辑

相关node包依赖

npm i xml2js
npm i ejs
npm i Puppeteer
npm i dplayer
npm i request-promise-native request


Access token

ttps请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

{“access_token”:“ACCESS_TOKEN”,“expires_in”:7200}
expires_in:单位秒

// 过期时间转换:当前时刻 + 过期时间
expires_in = Date.now() + (res.expires_in - 5 * 60)*1000

如果 expires_in < Date.now()是过期啦;

常见封装请求

使用 new Promise()实现,then方法调用返回值,
在这里插入图片描述

二、接收普通消息

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。

请注意:

关于重试的消息排重,推荐使用msgid排重。
微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。
如果开发者需要对用户消息在5秒内立即做出回应,即使用“发送消息-被动回复消息”接口向用户被动回复消息时,可以在
公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息和开发者回复的消息都会被加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“发送消息-被动回复消息加解密说明”。 各消息类型的推送XML数据包结构如下

2.1 node的流式数据的拼接返回xml

在这里插入图片描述

在这里插入图片描述

<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>12345678</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[你好]]></Content>
</xml>

2.2 利用工具包xml2js转化为json

在这里插入图片描述

2.3 回复消息-返回给微信服务器的响应xml

在这里插入图片描述
在这里插入图片描述

参考

在这里插入图片描述

三、js-jdk

参考文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62
在这里插入图片描述
注意事项
签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
签名用的url必须是调用JS接口页面的完整URL。
出于安全考虑,开发者必须在服务器端实现签名的逻辑。
在这里插入图片描述

配置config

用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi

示例代码:

https://www.weixinsxy.com/jssdk/sample.zip

备注:链接中包含php、java、nodejs以及python的示例代码供第三方参考,第三方切记要对获取的accesstoken以及jsapi_ticket进行缓存以确保不会触发频率限制

var sign = function (jsapi_ticket, url) {
  var ret = {
    jsapi_ticket: jsapi_ticket,
    nonceStr: createNonceStr(),
    timestamp: createTimestamp(),
    url: url
  };
  var string = raw(ret);
      jsSHA = require('jssha');
      shaObj = new jsSHA(string, 'TEXT');
  ret.signature = shaObj.getHash('SHA-1', 'HEX');

  return ret;
};

回复图片文字识别

开通百度AI开发平台,文字识别 ,可以看到开通的应用
在这里插入图片描述
查看文档 -》 人工智能-〉 文字识别
http-sdk文档有详细的使用,入参数,出参数,返回结果详解
在这里插入图片描述
图灵机器人:
如何读取xml数据:
通过输入流获取xml的节点数据;
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信公众号开发源码Java是用Java语言编写的用于开发微信公众号的源代码。微信公众号开发是指通过开发者账号申请成为微信公众号开发者,利用微信提供的开发接口和SDK来开发和管理公众号。 Java作为一种广泛应用于企业级开发的编程语言,在微信公众号开发中也得到了广泛应用。通过使用Java开发微信公众号,可以实现公众号的业务逻辑,包括用户管理、消息推送、菜单设置、素材管理等功能,以及与其他系统的对接、数据的处理和存储等。 对于开发微信公众号的源码来说,Java源码通常包括了处理微信服务器与开发者服务器之间的消息通信和交互的代码,以及各类功能模块的实现代码。开发者可以根据自己的需求和业务逻辑,使用Java语言编写各种业务逻辑代码,并通过开发工具集成微信提供的SDK库来实现与微信服务器之间的交互。 在Java源码的基础上,开发者还可以根据需要进行定制和扩展,以满足更具体的业务需求。可以添加自定义的功能模块或者对现有功能进行修改和优化,以适应不同的应用场景和业务要求。 总之,微信公众号开发源码Java是用于开发微信公众号的源代码,通过使用Java语言和相应的开发工具,开发者可以自定义和实现具体的业务功能,满足不同用户的需求,并与微信服务器进行消息交互,为用户提供更好的微信公众号服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值