什么是服务号?
微信服务号区别于订阅号,前者直接显示在微信会话列表中,后者被收进订阅号里。做微信服务类型的产品,为了获取曝光度以及获得更加高级的api接口,还是得用服务号。需要注意的是,微信为了防止用户过度被骚扰,服务器一个月内只能发4篇图文推送。
申请账号
个人无法申请服务号,因此如果你想拥有一个服务号,第一步是去注册一个公司。有了公司,做了对公银行账号后,可以申请服务号,并开通微信支付了。一个微信服务号的认证费用是300块钱,一年要认证一次。
无论你想在服务号里放H5还是想放小程序,你都得有一个ICP备案域名,在申请域名的时候顺便把https的CA证书申请下来,阿里云有免费的。
好了,经过一系列的操作,你已经拥有了一台服务器,一个备案后的域名。可以开始做一些前期准备工作了。
微信API授权准备
第一步,去公众号设置那填写你的应用域名。
第二步,去公众号基本配置IP白名单及获取开发者密码。
开发者密码很重要,后面要用于请求微信用户的数据,是微信识别公众号身份的参数。IP白名单填写你应用部署的服务器IP,否则无法获得access_token,这个token在微信很多api中都需要用到。
申请微信支付
如果你的应用没有用到微信支付,可以跳过,如果用到了,则需要去开通微信支付授权。开通微信支付的第一步是开通一个微信商户账号,此账号独立与公众号。拿着公司的营业执照和对公账号即可申请。
开发一个扫码点餐公众号网页
场景及简单的需求:
角色1:管理员。管理员负责后台对菜品的维护。对餐厅的每个座位生成对应的二维码。
角色2:用户。用户微信扫码,授权注册,选择菜品,支付。
管理员所涉及的功能是传统的网页功能,并不设计到微信端,所以重点介绍用户端。
用户授权登录
科代表总结:
根据公众号的appid,redirect_uri以及其他的一些参数,跳转到微信授权页。用户授权完成后,会重定向至redirect_uri中所指向的url,并且会在这个url中带有一个code。这个code作为参数,通过自己的登录接口传给后端。后端拿到code作为参数,通过微信授权api,拿到此用户的openid及access_token。此时通过用户openid查询数据库,如果匹配到了,直接返回用户数据给前端。登录完成。如果没匹配上,则说明是一个新用户注册。把openid以及access_token作为参数,通过微信用户信息api接口,拿到了用户基本的信息,如昵称,头像,性别,地区等。把这些信息存到数据库,并且回显至前端就行了。用户登录成功,浏览菜品,觉得这个豉汁排骨不错,下单。
微信支付
科代表总结:
用户选择商品购买,把商品id通过自己的接口传给后端。后端根据商品id,获取到价格等,加上公众号appid,商户号id等参数,根据微信支付的规则,生成了一个有规定顺序的xml,并对这个xml进行MD5签名。这里有一个参数notify_url要特别注意下,用户支付后,微信会请求这个接口,通知支付结果。把这个xml的MD5签名结果作为参数,请求微信支付统一下单api。返回的也是xml。根据xml的结果,拿到下单id,把这个下单id返回到前端。通过后端返回的信息,前端通过微信js接口,拉起微信支付。支付完成后,微信会请求notify_url,body中会带有支付结果的xml。解析这个xml,得到支付结果,并处理相应的逻辑即可。前端拉起支付时,也有一个success参数,也可以使用同一个逻辑。最终的结果是执行用户下单成功的逻辑,管理员的后台页面接收到相应的通知。所以其实开发一个微信应用不难,只满足以下的条件就行了:
有一个公司。
有一个对公账号。
有一个ICP备案后的域名。
有一台过得去的服务器。
一个不错的产品想法。
最后只差一个程序员了。
免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。