微信自定义分享(php方法)

首先拥有一个微信公众号,企业认证的,获取接口权限。如下图所示:


其次拥有一台服务器,备案号的域名

   因为前端页面需要的appIdsignature是需要后台传递过来的。

第一步:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”(就是发布用的那个域名)


第二步:获取服务号的AppId 和AppSecret

   AppId和AppSecret是微信公众平台服务号才有的,如果自己家的公众平台不是服务号,就升级为服务号吧!服务号的功能最强大,商家都用服务号。

    获取方法:

    登录服务号--->基本配置--->点击进去就会看到AppId ,AppSecret是属于保密状态的,因此在首次注册成功服务号时要保存好发过来的AppSecret,否则再次重置会影响以前做的一些项目。


PHP中实现微信自定义分享功能,通常需要以下几个步骤: 1. **获取微信JS接口的签名**: - 首先需要在服务器端获取`access_token`,然后使用`access_token`获取`jsapi_ticket`。 - 接着根据微信的规则生成签名(signature)。 2. **前端调用微信JS SDK**: - 在前端页面中引入微信JS SDK,并配置`wx.config`。 - 设置分享的内容,如标题、描述、图片链接和链接。 以下是一个简单的示例: ### 后端PHP代码(获取签名) ```php <?php function getSignPackage() { $appId = 'YOUR_APP_ID'; $appSecret = 'YOUR_APP_SECRET'; // 获取access_token $accessToken = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}"); $accessToken = json_decode($accessToken, true); // 获取jsapi_ticket $jsapiTicket = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$accessToken['access_token']}&type=jsapi"); $jsapiTicket = json_decode($jsapiTicket, true); // 生成随机字符串 $nonceStr = generateNonceStr(); // 当前时间戳 $timestamp = time(); // URL $url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; // 签名 $string = "jsapi_ticket={$jsapiTicket['ticket']}&noncestr={$nonceStr}&timestamp={$timestamp}&url={$url}"; $signature = sha1($string); $signPackage = array( "appId" => $appId, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string ); return $signPackage; } function generateNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } // 输出签名包 $signPackage = getSignPackage(); ?> ``` ### 前端HTML代码(调用微信JS SDK) ```html <!DOCTYPE html> <html> <head> <title>微信自定义分享</title> <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> </head> <body> <script> wx.config({ debug: false, appId: '<?php echo $signPackage["appId"]; ?>', timestamp: <?php echo $signPackage["timestamp"]; ?>, nonceStr: '<?php echo $signPackage["nonceStr"]; ?>', signature: '<?php echo $signPackage["signature"]; ?>', jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData'] }); wx.ready(function () { wx.updateAppMessageShareData({ title: '自定义标题', desc: '自定义描述', link: 'http://yourdomain.com', imgUrl: 'http://yourdomain.com/image.jpg', success: function () { // 设置成功 } }); wx.updateTimelineShareData({ title: '自定义标题', link: 'http://yourdomain.com', imgUrl: 'http://yourdomain.com/image.jpg', success: function () { // 设置成功 } }); }); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值