前端小程序代码(原生小程序)
index.wxml(前端页面)
<!-- index.wxml --> <view class="container"> <button bindtap="getPhoneNumber">获取手机号</button> </view>
index.js(前端逻辑)
// index.js Page({ data: { phoneNumber: '' }, getPhoneNumber() { wx.login({ success: (res) => { if (res.code) { wx.request({ url: 'https://your-backend-url.com/getPhoneNumber', method: 'POST', data: { code: res.code }, success: (response) => { console.log('获取手机号成功:', response.data.phoneNumber); this.setData({ phoneNumber: response.data.phoneNumber }); // 这里可以将手机号上传到后端保存到数据库 wx.showToast({ title: '获取手机号成功', icon: 'success' }); }, fail: (error) => { console.error('获取手机号失败:', error); wx.showToast({ title: '获取手机号失败', icon: 'none' }); } }); } else { console.error('登录失败!' + res.errMsg); } } }); } });
后端Java Spring Boot代码
Controller
import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class PhoneNumberController { @PostMapping("/getPhoneNumber") public ResponseEntity<?> getPhoneNumber(@RequestBody String code) { // 根据 code 获取用户手机号的逻辑,这里假设已经实现了获取手机号的方法 String phoneNumber = someService.retrievePhoneNumber(code); // 假设 phoneNumber 是从小程序获取到的手机号 // 将手机号保存到数据库 boolean saved = someService.savePhoneNumber(phoneNumber); if (saved) { return ResponseEntity.ok().body("{\"phoneNumber\": \"" + phoneNumber + "\"}"); } else { return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } }
Service
import org.springframework.stereotype.Service; @Service public class SomeService { public String retrievePhoneNumber(String code) { // 实现根据 code 获取用户手机号的逻辑,这里可以调用微信小程序登录接口获取手机号 // 该部分代码需根据具体的微信登录接口来实现 // 示例中直接返回一个固定的手机号 return "1234567890"; } public boolean savePhoneNumber(String phoneNumber) { // 实现保存手机号到数据库的逻辑,这里假设使用JPA或者MyBatis操作数据库 // 示例中直接打印保存成功信息,实际应用中需实现具体的数据库操作 System.out.println("Saving phone number to database: " + phoneNumber); // 假设保存成功 return true; } }
配置文件 application.properties
# application.properties # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_username spring.datasource.password=your_password # 其他Spring Boot配置
注意事项
安全性考虑:在实际应用中,应确保通信安全,例如使用HTTPS,同时在小程序和后端实现身份验证和授权机制。
数据库连接:请根据实际情况配置正确的数据库连接信息,并确保后端可以正常连接到MySQL数据库。
小程序设置:在微信公众平台设置小程序的请求域名,确保可以访问后端接口。
这些代码片段可以帮助你实现从原生小程序获取手机号并将其存储到MySQL数据库的功能。请根据实际情况调整和完善代码。