一个走在php路上的追梦者
http://bblog.mozhou168.com

关于小程序第三方平台开发

SON【开发文档链接错误部分】:

  1. open.weixin.qq.com-第三方平台-代小程序实现业务-代码管理-1、为授权的小程序帐号上传小程序代码[(2)ext_json中的参数可选,参数详见https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html]

    链接应为:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/ext.html


【踩坑】:

  1. open.weixin.qq.com-第三方平台-代小程序实现业务-代码管理-1、为授权的小程序帐号上传小程序代码-"ext_json":"JSON_STRING", //*ext_json需为string类型* 这句应为将整个json参数中的某个json进行json_encode,即,整个的json中,只对ext_json属性的值总共进行了两次json_encode();例如:$json = json_encode([
    'ext_json'     => json_encode($ext_json, JSON_UNESCAPED_SLASHES),
    'template_id'  => 3,
    'user_version' => "1.03",
    'user_desc'    => 'no description'
    ], JSON_UNESCAPED_SLASHES);

  2. 这里还有第二个小坑,上图中的url填满了转义符,造成了ext_json无法设置成功正确的url,因此,记得在json_encode()的时候,加上JSON_UNESCAPED_SLASHES常量防止给'/'添加转义符。也不用在意中文的转义了,这个不影响接口设置。

  3. 授权流程技术说明-第三方平台方获取预授权码(pre_auth_code)

    这个预授权码不要缓存!只需要缓存请求预授权码需要的component_access_token即可

  4. 关于第三方平台拥有的接口权限,包括但不仅限于第三方平台文档部分的权限,还包括了原本小程序部分的API权限。也就是说,第三方平台的开发者,需要看小程序开发文档、第三方平台开发文档这两个文档。第三方平台实际上掌握了每个用户作为一个独立小程序的所有权限。天真的我还以为第三方平台文档中没有的,就证明平台没有该权限。。。真是shit了。。。

  5. 关于服务类目的存储,一开始是使用的拼接字符串,后面改用为json存储,但是json在html中的select-option元素的value里面无法存储,解决办法为:htmlentities(),后台接收的时候解码一下html_entity_decode()即可

  6. 当接口测试失败的时候,记得观察一下文档中复制过来的url是否正确(是否有空格什么的)。比如:获取体验码接口获取刷新令牌接口

  7. 关于发布接口,这里的发送空json数据。php这里的方法是采用json_encode(array(), JSON_FORCE_OBJECT);这个才会发送的是json对象,而不是一个json空数组。或者看其他的方案是采用php新特性类型约定(object) array();这样也能达到同样的结果(不过我没有测试)



评论

© BoserSteven | Powered by LOFTER