最近用VFP在做MES+微信小程序结合的项目,期中有一项需求是:扫描报工二维码进行生产报工,要求在MES中生成报工小程序二维码码,在小程序中和微信中扫描该二维码都能跳转小程序相关页面。
进入小程序中再扫码跳转到相关页面的功能,在微信开发者工具很快就实现了,但在做直接用微信扫报工码进入小程序再跳转到相关页面的功能时,一波三折着实费了好大劲,最终在曾老师的点拨和猫框的加持下顺利完成。
现在将整个曲折的开发过程做个简单的讲述,并借助曾老师的平台分享给大家,希望能给有类似需求的小伙伴一点点启发。
起初,也没觉得实现这个有啥难点,不就是将带参数的链接转成二维码供微信扫嘛,于是马上用锐浪生成了一个码,在反复验证后,被结果无情的泼了冷水,事情没那么简单!
于是,马上去找度娘,一翻折腾后,终于明白了个中缘由:原来带参数直接扫码跳转小程序的二维码要用微信的API生成,不能用普通的报表工具生成,相关Api文档地址如下:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html。
弄明白这层关系后,对照着微信中关于获取AccessToken的API文档进行了代码编写,很快AccessToken就获取成功了,心里也是乐开了花,想着这也不难么。
接下来再按着获取小程序码的文档完成页面参数数据上传,按步就班的写完了代码,但。。。帅不过三秒,vfp弹出的一个程序错误提示(如图),
又让心情跌落谷底。不得于又去找了度娘,然后就是病急乱医,但凡结果中带点边的都试了一圈,可错误提示仍然不依不饶,无奈只能在曾老师求助。曾老师轻飘飘说了一句:“用猫框Qiyu_HTTPCLIENT吧。”,一语惊醒梦中人,真是捧着金碗讨饭,傻到家了。马上将代码按Qiyu_HttpClient类的说明进行了改写,原想着这回有高人指点应该顺风顺水,马到成功了吧,怀着激动的心情点了运行按钮,音响里立马传出的一声闷的警告声,顺带着屏幕上也弹出了一个警告框(如图),
这又出什么幺蛾子了,然后你们知道的,我又是对度娘进行了一通折腾,结果索然无味,还是请大神吧。怯生生的问了大神,大神云淡风清的说:“网址前面不要有空格。”,神医果然神,一语中的。改完后输出返回的结果,有值就有戏,虽然尽是乱码,按文档说是会返回二进制图像数据,那自然是看不懂的,那就用STRTOFILE()生成文件看看,一通操作,文件顺利生成,双击文件,这会没有警告声,也没警告框了,直接给黑脸(如图)
这。。。这。。。真要命,忙活了这么久,咋还没成呢!
有了前面的经验,这回不找度娘(折腾它二回了,让它休息休息),直接问大神。
大神估计是被问“烦”了,直接秒回并四发连击,(如图)
哎,也怪不得别人,菜都上桌了,还问人筷子在哪。两边文档都明明白白写着二进制结果数据,按要求设置参数就可以了,怎么就不认真看呢。
至此,借助猫框Qiyu_HttpClient类用VFP成功输出小程序码,经测试,效果完美(代码附后)。自我总结如下经验教训:
1、多学多看,不能自以为是,想当然;
2、度娘虽好,但不可迷恋,关键时刻还是身边人靠谱;
3、API文档、DEMO一定要认真看,反复看,扩展看;
4、有猫框如虎添翼,VFP还能再战。
完整代码: