微信云开发以其快速、安全、低成本等优势,深受普通开发者欢迎。我就使用微信云开发构建了一个电商小程序SASS制作平台,基于这个平台可以自动为商家搭建商城小程序。下面分模块来介绍SAAS平台,最后说明商家如何制作电商小程序。
要搭建SAAS平台,首先需要在微信开放平台注册一个第三方平台账号。这个第三方平台一边接收来自微信平台的消息,一边把收到的消息转发给后台。 下面具体介绍创建第三方平台的技术参数和相关代码。
填写第三方平台的相关介绍和官方网站。
有权限集、开发资料和开发模式。
至少要勾选账号管理、开发管理、基本设置、插件管理、云开发管理权限,具体根据自身情况进行选择。
登录授权的发起页域名:客户商家点击某个链接,可以把自己的小程序授权到SAAS平台,这里填写这个链接所属的域名。
授权事件接收配置:小程序的授权、取消等事件往哪里发
消息校验:消息加解密用的
消息加解密:消息加解密用的
消息与事件接收配置:小程序内部的一些消息事件往哪里发
公众号开发域名:www.pcloud.ac.cn
小程序服务器域名:mmbiz.qpic.cn;wx.qlogo.cn;thirdwx.qlogo.cn
小程序业务域名:www.pcloud.ac.cn
我使用的传统模式,主要原因是我之前已经搭建好了第三方平台,无需通过其它方式再次构建第三方平台。
绑定一个模板小程序账号,开发者基于这个模板小程序进行模板开发。开发完成后进行代码上传,添加到模板库后即可为其它小程序提供代码服务。
我使用的普通代云开发模式,主要原因是我之前基础npm包集成的是普通云开发的API接口。
另外,我开通了费用返佣。也就是说商家小程序无需支付云开发月度费用,而是由服务商统一支付,最后腾讯云还有费用返佣。这种模式下,云开发服务器费用可以降低到难以想象。
以上是第三方平台账号的配置,另外还需要有相关的代码支持。一共有三个PHP文件部署在公司的官方网站上(公司的官方网站本身就是PHP开发的)。这个三个文件分别是add.php、receive.php、remind.php。add.php用于给商家点击以授权小程序到第三方平台、receive.php用于接收小程序的消息和事件、remind.php用于处理授权或取消相关事件。
<?php
include_once "wxBizMsgCrypt.php";
require_once '../vendor/autoload.php';
$platformAppId = "wxXXXXXX";
$encodingAesKey = "sthhthrytjhyjeyj";
$token = "dyjdyjydjdyjytyy";
$encryptMsg = file_get_contents("php://input");
if(!$encryptMsg)
{
$encryptMsg = filter_input(INPUT_GET, 'ori_data');
}
$signature = filter_input(INPUT_GET, 'msg_signature');
$timeStamp = filter_input(INPUT_GET, 'timestamp');
$nonce = filter_input(INPUT_GET, 'nonce');
$decryptMsg ='';
$pc = new WXBizMsgCrypt($token, $encodingAesKey, $platformAppId);
if($encryptMsg) //存在则进行解密
{
$errCode = $pc->decryptMsg($signature, $timeStamp, $nonce, $encryptMsg, $decryptMsg);
if ($errCode != 0) { print($errCode . "\n"); }
$xml_tree = new DOMDocument();
$xml_tree->loadXML($decryptMsg);
$xml_messageType = $xml_tree->getElementsByTagName('InfoType')->item(0)->nodeValue;
if(!$xml_messageType)
{
$xml_messageType = $xml_tree->getElementsByTagName('Event')->item(0)->nodeValue;
}
if(!$xml_messageType)
{
$xml_messageType = $xml_tree->getElementsByTagName('MsgType')->item(0)->nodeValue;
}
$opts = array('http' => array('method' => 'POST', 'content' => $decryptMsg));
$context = stream_context_create($opts);
$msg = file_get_contents('https://cloudbase-env-XXX.service.tcloudbase.com/event?type='.$xml_messageType, false, $context);
}
echo 'success' ;
receive.php代码示例
前面申请了第三方平台,接下来就要构建第三方管理后台,用于对授权过来的小程序进行管理。
它前端采用React Ant Design Pro开发,后端接入微信云开发,最终通过微信云开发的静态网站托管部署上线运行。前端开发可以参考官方网站(https://pro.ant.design/docs/getting-started),下面重点讲解如何让一个react应用接入微信云开发、管理员登录身份鉴别以及部署上线。
在这个cloud.ts中,暴露云开发的cloud和db句柄,便于在api.ts中调用以访问微信云开发后台数据。
比较推荐通过公众号登录和开放平台扫码登录方式。
然后在代码中,写相关的授权方式以及登录验证的代码。
管理员如果是通过微信访问管理后台,则系统自动判断使用公众号授权方式进行登录。如果是通过其它浏览器访问管理后台,则系统自动判断使用扫码方式登录。
使用yarn run build,对react项目进行编译,然后再进行上传部署到微信云开发的静态网站托管。
模板小程序完全使用云开发,涉及到连接第三方系统的(例如打印、物流等系统),也均是通过云开发后台连接第三方。
前端开发:Taro+React+Redux+Vant UI。
后端服务:使用云函数作为后端服务,实现各种业务逻辑和数据操作。
数据库:使用云数据库存储商品信息、用户信息、订单信息等数据。
文件存储:使用云存储存储商品图片、视频等文件。
下面画出了用户和管理员的功能,因为图是很早画的,实际功能会更多。
一共分4个步骤。分别是注册小程序、注册商户号、平台制作以及开始使用。
注册小程序需要用营业执照来申请,不支持个人名义申请。如果此前已经有小程序,不需要再次注册。
联系服务商获取二维码注册微信支付商户号用于小程序内收款,商户号审核通过后登录pay.weixin.qq.com同意服务商的授权请求。注册微信支付商户号需使用营业执照来申请,不支持个人名义申请。
点击开始制作,管理员收到采云公众号发送的开始制作通知,证明系统已经开始制作小程序。后续还会收到云开发、审核等通知,请关注。
小程序审核通过后,点击审核结果通知,然后长按识别小程序码自动成为管理员即可开始使用。
以上就是介绍。希望对开发者搭建SAAS系统有所帮助,也希望对商家开通商城小程序提供更多优质的选择。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。