delphi+unigui开发的微信公众号

对于delphier来说,用delphi开发web程序,一直是一个很头痛的问题,除了ui美观上的问题,还有大量的互联网接口交互开发,其他微信公众号是目前使用最广泛的营销方式,java和php,net都有官方demo,但delphi却没有。因为工作需要,我结合自己对php知识的了解,决定用delphi+unigui做一套微信公众号管理的功能,unigui和delphier原生框架一样,拖放控件就能实现web开发。我花了大量的时间,将php的代码改写到了delphi中, 实现了大部分的微信公众号管理,欢迎大家一起交流。

已经实现的内容:
1、批量获取公众号所有已关注用户基本信息。
2、根据微信的uid获取详细信息,包括各种尺寸头像
3、修改用户备注信息
4、创建用户分组
5、修改用户分组
6、单个发送模板消息
7、批量群发模板消息 

PS:这个是桌面版公众号管理,手机版的也经正在进行中,实现微信登录,微信绑定,微信支付等功能。

DELPHIUNIGUI 框架中实现企业微信自建应用的扫码功能,需要结合企业微信提供的 JS-SDK 和 UNIGUI 的前端交互能力。UNIGUI 是基于 Web 的开发框架,因此可以通过调用企业微信的 JS-SDK 来实现扫码功能。 ### 企业微信自建应用中扫码功能的实现步骤 1. **配置企业微信应用权限** 在企业微信管理后台,确保自建应用已启用“使用 JS-SDK”权限,并将服务器域名配置为 UNIGUI 应用的访问地址。企业微信要求域名必须通过 HTTPS 访问,并完成校验。 2. **获取 JS-SDK 权限验证票据(jsapi_ticket)** 企业微信 JS-SDK 需要通过 `jsapi_ticket` 来生成签名,签名用于验证前端页面调用 JS-SDK 接口的权限。`jsapi_ticket` 可通过企业微信提供的接口获取: ```http GET https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKEN ``` 其中 `ACCESS_TOKEN` 是企业微信应用的访问令牌,可以通过企业微信后台配置的凭证获取。 3. **生成签名(signature)** 使用 `jsapi_ticket`、当前页面的 URL、时间戳和随机字符串等参数,通过 SHA-1 加密算法生成签名值。该签名将用于前端页面调用企业微信 JS-SDK 的权限验证。 4. **在 UNIGUI 的前端页面引入企业微信 JS-SDK** 在 UNIGUI 的 Web 页面中,通过 HTML 的 `<script>` 标签引入企业微信的 JS-SDK: ```html <script src="https://rescdn.qqmail.com/node/wwloginpage/wwloginpage.js"></script> ``` 然后通过 JavaScript 调用企业微信的扫码接口: ```javascript wx.config({ debug: false, // 开启调试模式 appId: '企业微信CorpID', // 企业微信的唯一标识 timestamp: '生成签名的时间戳', // 生成签名的时间戳 nonceStr: '生成签名的随机串', // 生成签名的随机串 signature: '生成的签名', // 签名 jsApiList: ['scanQRCode'] // 需要使用的 JS 接口列表 }); wx.ready(function () { wx.scanQRCode({ needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果 scanType: ["qrCode"], // 可指定扫二维码还是一维码,默认二者都有 success: function (res) { var result = res.resultStr; // 获取扫描结果 // 将扫描结果发送到 UNIGUI 后端处理 TUniSession.AddToJavaScriptQueue('HandleScanResult("' + result + '")'); } }); }); ``` 5. **在 DELPHI UNIGUI 中处理扫码结果** 在 DELPHI UNIGUI 的后端代码中,可以通过 `TUniJavaScript` 或 `TUniSession` 对象接收扫码结果,并进行业务处理。例如,可以在前端调用 `HandleScanResult` 函数,将结果传递给后端: ```pascal procedure TMainForm.HandleScanResult(result: string); begin ShowMessage('扫码结果:' + result); end; ``` 6. **安全与权限控制** 为了确保扫码功能的安全性,应在后端验证扫码结果的来源,并确保企业微信的签名机制正确无误。此外,应定期更新 `jsapi_ticket` 和 `access_token`,避免因过期导致扫码功能失效。 ### 示例代码:DELPHI UNIGUI 调用企业微信扫码功能 以下是一个简单的 DELPHI UNIGUI 前端调用企业微信扫码功能的代码示例: ```pascal procedure TMainForm.UniButton1Click(Sender: TObject); begin UniSession.AddToJavaScriptQueue( 'wx.config({' + 'debug: false,' + 'appId: "' + AppId + '",' + 'timestamp: "' + Timestamp + '",' + 'nonceStr: "' + NonceStr + '",' + 'signature: "' + Signature + '",' + 'jsApiList: ["scanQRCode"]' + '});' + 'wx.ready(function () {' + 'wx.scanQRCode({' + 'needResult: 1,' + 'scanType: ["qrCode"],' + 'success: function (res) {' + 'var result = res.resultStr;' + 'TUniSession.AddToJavaScriptQueue("HandleScanResult(\'' + result + '\')");' + '}' + '});' + '});' ); end; ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值