本文最后更新于2022年01月11日,已超过152天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
2021-09-06 17:26:44 星期一 今天我有个需求就是网页打开小程序而且需要带参数,我去找了很多地方的文档发现都是一些说明的文档,并没有代码的实例,于是我写一个吧。
根据微信小程序官方文档来看需要先获取access_token,也就是调用凭证。 这个比较简单获取APPID和AppSecret去Get去请求就可以了,这个教程比较多,而且很简单我就不多说了 参官方考文档: 参官方考文档
获取完成就可以去POST获取获取小程序的scheme码了 官方参考文档: 微信开发文档 正常的返回情况
{"errcode":0,"errmsg":"ok","openlink":" scheme码"}
也不多说了,看代码吧
code here...
function getUrlScheme(){
$id = input('payid');
$access_token = $this -> wx_xcx_code("wx9e5dd65897394046", "0f1570acb9bd690a4d7f2667c6f05844");
$access_token = $access_token['access_token']; // 加个判断,是否获取成功
$url = "https://api.weixin.qq.com/wxa/generatescheme?access_token=" . $access_token;
$path = '';
$scene = '';
$post_data = [
'jump_wxa' => [
'path' => $path,
'query' => $scene
],
'is_expire' => true,
'expire_time' => time() + 600
];
$post_data = json_encode($post_data);
$result = $this ->api_notice_increment($url, $post_data);
$data =json_decode($result,true);
$wxurl = $data['openlink'];
echo "<a href=".$data['openlink'].">点击打开小程序</a>";
// print_r(json_decode($result));
}
function wx_xcx_code($appid, $appsecret){
$access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
$access_info = json_decode(file_get_contents($access_url),true);
return $access_info;
}
/**
* 发起 POST 请求微信接口
* https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
*
* 返回结果
*/
function api_notice_increment($url, $data){
$ch = curl_init();
$header = ["Accept-Charset" => "utf-8"];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
return false;
} else {
return $tmpInfo;
}
}
//小程序链接生成结束