微信开发之路(一)

由 漆黑菌 于 2017年12月28日 发布

前言

最近几个月一直在开发和微信有关的内容,最近基本上是写的差不多了。是时候总结一下了。

微信支付

这是我在微信平台上开发的第一个功能,也让我体验了一把传说中微信支付文档的狗屎程度。正好赶上了微信支付API改版,开发文档青黄不接,可以说被坑的不浅。

注意事项

  1. 这个文档是有时效性的!写于2017年12月28日,祈祷它暂时不会过期吧。
  2. 我开发的是微信公众号内的支付,其他支付方式开发并不相同。
  3. 只是记录一波中间踩得坑,主力还是要看微信支付开发文档

配置服务器信息

按照开发文档所说,第一步应该是要配置两个服务器信息。一个是支付目录,另一个是授权域名。看上去很简单是吧,实际上起码我掉了两个坑。

  1. 请使用超级管理员账号配置,那个开发者人员账号基本就是假的。。。
  2. 配置支付目录的时候要精确到最后一个/号的位置,所以支付调起的地方最好不要太多。

统一下单

  1. 要求填写的ip地址可以写192.168.1.1来规避。
  2. 因为下单方式是JSAPI,所以openid也是必须值,所以在用户账号信息里面要有用户openid,这个openid可以理解成md5(用户uuid+公众号uuid)不会重复,而且取消重新关注也不会变。

获取openid

获取openid又是一个坑,官方的连接是获取openid,因为我开发的是公众号支付,所以点微信公众平台下面第一个链接就可以了。 然而,实际上这几个链接都是失效的。。。。点进去都是首页。 我在这次开发中注册的时候除了openid还要拿用户详细信息,参考这里就可以了拉取用户信息, 在这个过程中我们会遇到第一个access_token,这个access_token和其他要用的access_token不是一回事,八成会搞混的,只能用来拿用户信息。拿用户信息用的token申请的url是

https://api.weixin.qq.com/sns/oauth2/access_token?appid="+ WXConfig.getAppid()
+ "&secret="+ WXConfig.getAppsecret()
+ "&code=" + mycode 
+ "&grant_type=authorization_code

而一般接口用的token申请的url是

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid
+"&secret="+appsecret

如果搜索的时候比较详细可能还会发现另外一个jsapi发起支付的文档,但是很负责的说那个已经过期了,虽然当时我不知道,就把新版旧版两种都实现了一遍。 比较明显的区别是,老版jsapi支付要用到jsapi_ticket这个ticket,这是我遇到的第三个ticket,申请的url是

https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+access_token+"&type=jsapi

看到要拿这个的话就可以退出去找新版的文档了。