微信公众号的开发对接工作颇为繁杂,却极其关键。这过程中,包括微信服务号的接入、第三方平台的开发、域名配置的调整,以及与移动应用APP的联动等多个环节。一旦疏忽大意,就可能影响到功能的正常使用。你是否也有类似的感受?因此,有必要详细探讨其中的技巧和要点。
一微信服务号的要求
只有属于服务号类别的微信公众号才能达到所需条件。服务号与订阅号在权限和功能上存在差异,它在第三方开发和应用配置方面拥有独有的运作方式。众多企业或项目青睐服务号,正是因为它在这方面的特别适应能力。此外,接入微信的第三方开发平台是扩展公众号功能、促进多样化互动的关键步骤。比如,众多电商服务号通过接入第三方平台,实现了丰富的营销功能。
接下来要谈域名配置,服务号管理平台需要设置三个重要域名:业务域名、JS安全接口域名和网页授权域名。特别要注意的是,这三个域名得填写跳转页面的子域名。比如,以一个H5跳转页面为例,如果页面的URL是某个特定格式,那么相应的域名就要填写这个URL的主体部分。在实际操作中,这个细节可不能弄错。
二配置白名单IP
若想授权开发者使用公众号所有功能,需设置白名单IP。此IP与安全域名IP紧密相连,可直接使用安全域名IP。此举旨在确保开发过程的安全与授权的有效性。在企业内部开发项目中,开发者的权限管理和操作安全是至关重要的考虑。通过白名单IP的限制,能最大程度确保公众号开发与运营的安全。此外,这也有助于在开发过程中降低技术与业务衔接的风险和麻烦。
三APPID与安全域名的绑定
完成公众号绑定后,需进入微信开放平台管理中心进行操作。在公众号详情页的接口信息关联设置里,需将移动应用的APPID与之前设定的JS安全接口域名相绑定。规则很清晰,一个APPID对应一个安全域名,而一个安全域名则可对应多个APPID。这是为了适应不同开发需求,例如企业拥有多个移动应用及一个服务号时。例如,一家大企业旗下若有多款APP产品,需与公司统一的服务号互动,就会用到这种配置规则。另外,要留意,只有通过JS安全域名打开的页面才能跳转到APP,否则无法执行微信跳转APP的操作。
四第三方平台的配置
第三方平台主要用作代开工具,里面还需完成诸多配置。其中,授权事件接收配置尤为重要,即信息推送,它帮助第三方开发者获取核心信息。这在开发流程中极为关键,关乎数据流转和功能实现。比如,第三方客服系统要获取公众号粉丝重要数据,就得依靠这一配置。此外,对接公众号时,需将公众号原始ID放入第三方平台开发信息中,这样才能顺利授权服务号功能给平台。若不如此,开发过程中可能会遇到权限不足等问题。
五APP接入的不同方式
<template>
<view class="content">
<view style="height: 500rpx"></view>
<!-- 此处的APPID为移动应用APPID -->
<wx-open-launch-app appid="wxb1bea91c99acb227" extinfo="" @launch="AppLaunch" @error="AppError">
<script type="text/wxtag-template">
<style>.btn { margin-bottom:200rpx;line-height: 34rpx; font-size: 34rpx; color:rgba(255,255,255,1); background:rgba(33,186,189,1); border: none; outline: none;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;}</style>
<button id="btn1" class="btn">打开App</button>
</script>
</wx-open-launch-app>
</view>
</template>
<script type="text/wxtag-template">
import wx from '../../compents/wx-app/index.js'
export default {
data() {
return {
time:'',
nums: '',
signature:'',
appId: ''
}
},
onLoad() {
// 获取当前url,此url为拥有跳转APP按钮的页面具体地址,不需要参数
let url = window.location.href;
console.log(url)
url = url.split('#')[0]
console.log(url)
uni.request({
url: 'https://h5-test.xxx.com/getSignature&url='+url, //仅为示例,并非真实接口地址。
success: (res) => {
if(res!=null){
let that = this
this.time = res.data.data.timestamp.toString()
this.nums = res.data.data.nonceStr.toString()
this.signature = res.data.data.signature.toString()
this.appid = res.data.data.appId.toString()
wx.config({
debug: true,
appId: that.appid, // 此处APPID为公众号的APPID
timestamp: that.time,
nonceStr: that.nums,
signature: that.signature,
jsApiList: ['onMenuShareTimeline'], //此处必须填写一个,不为null就行
openTagList: ['wx-open-launch-app']
})
wx.ready(function () {
console.log('ready')
wx.checkJsApi({
jsApiList: ['wx-open-launch-app'], // 校验跳转APP的标签是否可用
success: function (res) {
console.log('可用')
console.log('config111')
},
fail: (err) => {
console.log(err, '不可用')
}
})
})
wx.error(function(res){
console.log("error:",res)
});
}
}
});
},
methods: {
AppLaunch(e){
console.log("success",e)
},
AppError(e){
console.log("fail",e.detail)
},
// 监听error 函数
handleErrorFn (e) {
// 跳转失败
console.log(JSON.stringify(e), '跳转失败')
download() // 这里跳转App下载页面
},
// 监听launch 函数
handleLaunchFn (e) {
// 跳转成功
console.log(JSON.stringify(e), '跳转成功')
}
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
</style>
对于APP开发者来说,接入安卓和iOS平台的方法各有差异。接入安卓系统较为直接,只需遵循文档操作即可,过程相对简单。然而,iOS接入则较为繁琐。在iOS接入过程中,需先确认设备是否支持Links拉起功能。若不支持,将直接导致跳转失败。此外,在iOS接入APP时,开发者还需将已申请的移动应用APPID加入到APP的微信SDK中。这一步骤对于iOS系统下的APP与微信生态的对接至关重要。若处理不当,可能导致APP与公众号的交互功能无法正常使用。
六H5页面的特殊处理
若是HTML静态网页,前端在通过ajax传递URL至后台签名时,需用JavaScript抓取当前页面的链接,剔除“#”哈希部分。这可通过.href.split(’#’)[0]实现。微信客户端在页面分享时,会在链接后附加额外参数,若不动态获取当前链接,分享后的页面签名可能会失败。H5页面没有微信原生页面那样的内置标签,其跳转标签还包含验证机制,必须验证通过才能正常显示。我们可利用微信开发者工具来调试页面。但需留意,即便在开发者工具中调试显示跳转成功,仍需检查是否使用了中间页访问,以免在实际应用中跳转失败。此外,在分享方面,采用名片式分享URL,用户接收的是名片式链接而非普通URL,或者发送至公众号并在公众号页面打开,也是一些特殊的应用方式。
最后我想请大家留意,在操作这些繁杂的设置过程中,是否遇到了一些棘手的难题?欢迎在评论区留言点赞,并转发这篇文章。