1、用户进行测算,支付成功后首先需要跳转到企业微信扫码界面
2、上图扫码加好友成功后,企业微信自动发送测算结果给扫码的微信用户
3、为实现上面的功能,需要操作的流程大致如下:
1)企业微信内创建一个自建应用,获取secret,设置接收消息的api(确定企业微信回调数据给自己的url地址),企业可信ip里面加上服务器的ip
2)在客户联系里面,可调用接口的应用里面,加上自己创建的自建应用,在获客助手里面,创建获客链接
3)获客链接创建好后,需要在获客链接后面加一个customer_channel参数,比如:https://work.weixin.qq.com/ca/cawcde2f2e234bc272?customer_channel=202407062301167181485929,用户通过获客链接扫码加好友后,企业微信会回调包含 customer_channel 参数的数据给你接收回调信息的url地址,参考文章:
https://developer.work.weixin.qq.com/document/path/97298#42923,
回调数据需要先解密成明文后,里面的 State 参数就是 customer_channel ,我们接收到customer_channel 订单号后就可以在自己的网站数据库查询到订单信息,然后将订单信息自动以欢迎语的方法发送给扫码加好友的微信用户,以此来实现扫码加好友自动发送订单信息,参考文章:
https://developer.work.weixin.qq.com/document/path/92599
开发过程中遇到的问题:
1、企业微信应用验证URL失败,“openapi请求回调地址不通过,-40001错误”,先上代码
<?php header("Content-type: text/html; charset=utf-8"); include_once "./weworkapi/callback/WXBizMsgCrypt.php"; $encodingAesKey = "******"; $token = "*****"; $corpId = "*****";//企业id,非应用id $sVerifyMsgSig = $_GET@['msg_signature']; $sVerifyTimeStamp = $_GET@['timestamp']; $sVerifyNonce = $_GET@['nonce']; $sVerifyEchoStr = urldecode($_GET@['echostr']); //$sVerifyMsgSig = HttpUtils.ParseUrl("msg_signature"); //$sVerifyTimeStamp = HttpUtils.ParseUrl("timestamp"); //$sVerifyNonce = HttpUtils.ParseUrl("nonce"); //$sVerifyEchoStr = HttpUtils.ParseUrl("echostr"); $a1 = $_GET@['msg_signature'].'---'.$_GET@['timestamp'].'---'.$_GET@['nonce'].'---'.$_GET@['echostr']; // 需要返回的明文 $sEchoStr = ""; $wxcpt = new WXBizMsgCrypt($token, $encodingAesKey, $corpId); $errCode = $wxcpt->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr); file_put_contents('./qiyeweixin.txt',$a1.'---'.$errCode); if ($errCode == 0) { //var_dump($sEchoStr); echo $sEchoStr; // 验证URL成功,将sEchoStr返回 // HttpUtils.SetResponce($sEchoStr); } else { print("ERR: " . $errCode . " "); } ?>
报-40001错误,那就是$corpId,$token,$encodingAesKey这三个参数没配置对,你会说“我明明配置对了”,那我就教你一个方法,随机获取一次$token和$encodingAesKey,如果报错的话,再获取一次,不行再获取一次,尝试重新获取多次测试,我就是这样验证成功的,关于这一块的参考文章:
https://blog.csdn.net/json_ligege/article/details/133142839,
文章里面有一些企业微信官方的解密文件
企业微信对接报错,可以参考所有的错误码:https://developer.work.weixin.qq.com/document/path/96213#%E9%94%99%E8%AF%AF%E7%A0%81%EF%BC%9A40058
2、总是报错60020,not allow to access from your ip,首先在自建应用里面查看企业可信ip,里面是否包含了你服务器的ip
如果包含了你服务器的ip,还是返回60020,not allow to access from your ip,那就检查一下你的接口代码,看看获取access_token里面传递的2个参数,一个企业id,一个自建应用秘钥,是不是对应的,我就是因为直接把本地文件的代码直接复制粘贴到服务器文件里面,导致这2个参数不对,一直报错60020,not allow to access from your ip,搞得我一头雾水,有时候细节问题没到位,搞得人头大,细心一点比较好
3、测算网站里面,微信支付后,原来是直接跳转到结果页面,现在全部改成跳转到企业微信加好友页面,包括电脑端,浏览器端(h5),微信内浏览器端三部分
微信支付电脑端支付后跳转到企业微信加好友页面:/ffsm/payment/Wxpay_gz/example/native.php
h5端(浏览器端):/ffsm/payment/Wxpay_gz/example/h5api.php
微信内浏览器:/control/ctl_pay.php,第179行,
注释掉:$return[‘url’] = $this->site_url.”/?ac=”.$ac.”&oid=”.$oid.”&token=”.base64_encode(md5($oid));
加上:$return[‘url’] = ‘https://work.weixin.qq.com/ca/cawcde2f2e2d4bc272?customer_channel=’.$oid;
最后,需要完整代码的,有偿分享,感谢!
1.本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。请发送邮件至:chensi2024@foxmail.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明。
4.如下载链接失效,请在当前页留言或私信管理员,24小时必处理结束!
5.本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
6.本站提供的资源仅限用于学习交流和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险以及产生法律纠纷与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除。