当前位置:首页>>问题

算命网站支付成功后,扫码加企业微信好友后,自动发送测算结果

1、用户进行测算,支付成功后首先需要跳转到企业微信扫码界面2、上面扫码加好友成功后,企业微信自动发送测算结果给用户微信

admin

1、用户进行测算,支付成功后首先需要跳转到企业微信扫码界面

1720067078150203.png

2、上图扫码加好友成功后,企业微信自动发送测算结果给扫码的微信用户

3、为实现上面的功能,需要操作的流程大致如下:

1)企业微信内创建一个自建应用,获取secret,设置接收消息的api(确定企业微信回调数据给自己的url地址),企业可信ip里面加上服务器的ip

image.png

image.png

image.png

2)在客户联系里面,可调用接口的应用里面,加上自己创建的自建应用,在获客助手里面,创建获客链接

image.png

image.png

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

文章里面有一些企业微信官方的解密文件

image.png

 企业微信对接报错,可以参考所有的错误码: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

image.png

如果包含了你服务器的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;



最后,需要完整代码的,有偿分享,感谢!





返回顶部