微信小程序配置
在开发运动追踪功能前,需先在微信小程序后台完成基础配置。登录微信公众平台,进入小程序管理后台,在“开发”>“开发设置”中获取AppID和AppSecret,并配置服务器域名(需HTTPS)。同时,在“接口权限”中申请“运动数据”接口权限,确保小程序可获取用户步数等数据。
PHP后端开发
1. 接口验证与安全
创建PHP文件(如api.php
)处理小程序请求。首先验证请求来源和Token:
<?php
define('TOKEN', 'your_wechat_token'); // 需与小程序后台配置一致
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
// 微信服务器验证
$signature = $_GET['signature'];
$timestamp = $_GET['timestamp'];
$nonce = $_GET['nonce'];
$tmpArr = array(TOKEN, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = sha1(implode($tmpArr));
if ($tmpStr == $signature) {
echo $_GET['echostr'];
exit;
}
} else {
// 处理POST请求(运动数据)
$input = file_get_contents('php://input');
$data = json_decode($input, true);
// 业务逻辑:存储数据或分析
file_put_contents('sport_data.log', json_encode($data));
echo json_encode(['code' => 0, 'msg' => 'success']);
}
2. 数据存储与处理
建议使用MySQL存储运动数据,例如创建表sport_records
,字段包括用户ID、步数、距离(米)、时间戳等。通过PHP的PDO扩展实现数据和查询。
小程序端开发
1. 获取用户授权
在小程序页面中,调用wx.login
获取用户code
,并发送至PHP后端换取openid
。随后调用wx.authorize
申请运动数据权限:
$token_string = implode($token_array); $signature_local = sha1($token_string); if ($signature != $signature_local) { echo 'Invalid request'; exit; } // 处理小程序发送的请求 $method = $_SERVER['REQUEST_METHOD']; if ($method == 'GET') { // 首次验证,返回echostr值 $echostr = $_GET['echostr']; echo $echostr; } elseif ($method == 'POST') { // 处理小程序运动数据 $data = file_get_contents("php://input"); $json_data = json_decode($data, true); // 在这里可以对运动数据进行业务处理,比如保存到数据库等 // 返回相应的结果给小程序 $response = array( 'error_code' => 0, 'error_message' => 'Success', ); echo json_encode($response); } ?>
wx.login({
success: (res) => {
wx.request({
url: 'https://yourdomain.com/api.php?action=login',
data: { code: res.code },
wx.authorize({ scope: 'scope.werun' });
}
});
}
});
2. 获取与提交运动数据
使用wx.getWeRunData
获取加密数据,通过PHP接口解密(需后端调用微信接口)并存储:
wx.getWeRunData({
url: 'https://yourdomain.com/api.php',
method: 'POST',
data: { encryptedData: res.encryptedData, iv: res.iv },
wx.login({ success: function(res) { if (res.code) { // 发送运动数据到PHP接口 wx.getWeRunData({ success: function(data) { wx.request({ url: 'http://your_domain.com/path/to/php/file.php', method: 'POST', data: { encryptedData: data.encryptedData, iv: data.iv, code: res.code }, success: function(response) { console.log(response.data); } }); }, fail: function() { console.log('Failed to get WeRunData'); } }); } else { console.log('Failed to login'); } }, fail: function() { console.log('Failed to login'); } });
console.log('数据提交成功');
}
});
<b>注意事项</b>
<b>HTTPS必需</b>:微信小程序要求所有接口域名备案并启用HTTPS。
<b>数据安全</b>:敏感数据(如openid`)需脱敏存储,加密传输。
性能优化:高并发场景建议使用Redis缓存用户运动数据。
通过上述步骤,即可实现基于PHP的微信小程序运动追踪功能。开发者可根据需求扩展数据分析、排行榜等功能。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态