翰林工作室更近做了一个小程序,开发从零到一,期间遇到了一些坎坷吧,总结一下给以后开发者一些提醒。本文介绍一些干货,不分享那些百度一大堆的微信开发官方截图。
一、经验教训
注册微信开放帐号,打通多个小程序数据
为了识别用户,每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间打通用户,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下。绑定后,一个用户对多个公众号和应用有多个不同的OpenID,但对同一开放平台账号下的公众号和应用,只有一个UnionID,所以可实现多个小程序间的用户数据互通,满足运营需求
服务设计考虑支持多套小程序
运营时,可能多条腿走路,有时会出现多个小程序运行同一业务,所以程序在服务设计时可以考虑兼容,将多个小程序(appId)以及对应的商户信息在数据库中进行存储,数据表中添加appId字段加以区分;
提审注意事项
第1、提审前要详细了解微信官方对小程序各类目的审核规范,避免通过多次提升试错的方式进行提审,因为小程序审核需要一定的时间周期,定然影响你的产品进度。
第二、对于需要包装静态页进行过审的小程序,可以程序通过后台添加开关,通过审核后再打开
第三、小程序业务逻辑中一些可配的功能应尽量放在后端,避免前端发版审核
第四、找官方内部人员或者淘宝商户进行提审。这个已经成为一个产业链了,几百块钱就行搞定。
添加应急维护页
做友好的404页面。上线之后,服务出现问题或者运营需要,给用户展示应急维护页,不仅页面友好,还可以添加提示信息
数据库表支持存储emoji表情处理
对于微信和QQ等一些第三方服务,用户如果开放了emoji表情使用,在进行数据库表设计应该考虑到这点,数据库字段编码格式改为utf8mb4
二、小程序账号申请流程和注意点
小程序的注册申请流程:
首先,需要进入 http://mp.weixin.qq.com,点击右上角的「立即注册」链接,在「帐户类型」页面中,选择「小程序」。
填写邮箱、密码,提交。需要特别注意的一点,注册小程序的邮箱,不能是已经绑定公众号、小程序的邮箱。邮箱会收到一封确认注册邮件,需要点击邮件中的确认链接,继续注册流程。
确认邮箱链接后,接下来填写小程序的主体信息。此步中,需要验证手机号,并使用运行微信扫码确定填写。
三、开发设计中的注意点
在开发设计中,用户授权&权限控制以及微信支付是两个核心开发模块,其次是小程序自身的业务。所以详细介绍下登录和支付的环节。
登录逻辑
小程序中更常用到的功能是用微信账户登录,让用户登录授权登录小程序,标识用户和获取用户信息,这种方式和微信平台结合更紧密,用户体验也比较好。
登录流程如下:
具体流程:
1. 在客户端获取当前登录微信用户的登录凭证(code),使用wx.login()方法获得;
2. 登录凭证发往服务端,并在服务端使用该凭证向微信服务器换取该微信用户的一标识(openid)和会话密钥(session_key)。
为了安全方面的原因,不要直接使用以上信息作为小程序的用户标识和session标识传到小程序客户端中去,应该在服务器端做一层程序自己的session。
将微信账号登录态生成一个session id 并维护在程序的session中,可以把 session id 派发到小程序客户端作为session标识来使用
3. 在客户端保存sessionid,小程序有本地的storage,可以使用storage来保存 sessionid,以供后续的后台API调用所使用。
上海微信小程序开发支付接入
第1步:配置密钥
小程序后台设置页,点击生成,管理员验证二维码后,会随机生成 AppSecret。请妥善保管好 Appsecret,不要明文存储于服务器,AppSecret 是用于和微信服务器交互的凭证。
第二步:设置密钥、下载证书
使用申请微信支付时获得到的用户名和密码,登录平台地址:http://pay.weixin.qq.com,在账户中心中API安全中下载证书和设置密钥。
备注:密钥是32位,设置后需要妥善保管,所有微信支付相关的接口都会使用这个密钥加密。同时下载的支付证书也需要放到服务器上。
第三:支付流程
详细流程可参考微信的官方文档:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1
主要流程:
1. 后台生成第三方商户单
2. 调用微信支付统一下单接口进行预付单生成
3. 将返回的预付单信息签名处理后返回给前端,并由前端界面来发起微信支付
4. 用户支付成功后,后台接收微信的回调通知,进行支付成功后的业务逻辑处理
四、小程序下线
一般小程序生命周期的更后一步是下线,操作流程如下:
1. 提前禁用小程序业务,如使用404维护页,避免产生新的业务数据
2. 可以通过 nginx等 配置需需接口返回值,主要包含公告接口、登录接口,下线后打开配置开关,保证服务下线后,用户可以打开小程序看到运营公告,不影响用户体验。