微信小程序后端(PHP)怎么搭:从零配通接口,前端终于不再”请求失败”

“小程序后端用 PHP 还是 Node?””我写了个 PHP 接口,小程序里一直请求失败怎么办?””接口本地能访问,一上服务器就返回空,咋回事?”——搭后端是小程序开发里最容易劝退新手的一环。有个做本地生活小程序的开发者,前端写得挺溜,后端用 PHP 随手写了个接口,本地 Postman 测得好好的,结果小程序里死活调不通,折腾两天发现是服务器没开 HTTPS、域名也没进微信白名单。他不是个例——前后端打通的坑,八成不在代码逻辑,而在环境、协议、配置这三道关卡。下面按”能跑通”的顺序讲。

一、为什么很多小程序后端选 PHP

  • 服务器成本低:PHP+MySQL 在宝塔/1Panel 一键装,2 核机器就能扛日常量;
  • 生态成熟:ThinkPHP、Laravel 等框架资料多,招人改都容易;
  • 和源码站主流交付一致:市面上多数成品小程序源码后端就是 PHP,买来直接部署最省事。

如果你买的是现成源码(后端已是 PHP),那根本不用”从零写”,照第 30 篇部署即可;本文是给你”想自己写接口”或”要改后端逻辑”时打底。

二、第 1 步:服务器与运行环境

  • 系统推荐 CentOS 7+/Ubuntu 20.04+,装宝塔或 1Panel;
  • 装 Nginx + PHP 7.4(兼容性好)+ MySQL 5.7;
  • 建站点,绑定已备案域名,申请免费 SSL 证书并强制 HTTPS。

记住一条铁律:小程序所有请求必须 HTTPS,HTTP 一律被微信拦截。没证书前别浪费时间联调。

三、第 2 步:写一个最小可跑通接口

新建 api/test.php

<?php
header('Content-Type: application/json;charset=utf-8');
// 允许小程序跨域(开发期)
header('Access-Control-Allow-Origin: *');
$res = ['code' => 0, 'msg' => 'ok', 'data' => ['time' => date('Y-m-d H:i:s')]];
echo json_encode($res, JSON_UNESCAPED_UNICODE);

浏览器直接访问 https://你的域名/api/test.php,能看到 JSON 就说明后端活了。注意 UTF-8 和 JSON_UNESCAPED_UNICODE,否则中文变 u 乱码。

四、第 3 步:连数据库,返回真实数据

<?php
header('Content-Type: application/json;charset=utf-8');
$pdo = new PDO('mysql:host=localhost;dbname=shop;charset=utf8', 'user', 'pass');
$stmt = $pdo->query('SELECT id,name,price FROM goods LIMIT 10');
echo json_encode(['code'=>0,'data'=>$stmt->fetchAll(PDO::FETCH_ASSOC)], JSON_UNESCAPED_UNICODE);

这一步卡住,多半是数据库账号权限、SQL 模式或字符集问题。连不上先 try/catch 把错误打出来,别盲改。

五、第 4 步:微信域名白名单(关键)

进微信公众平台→开发设置→服务器域名,把你的后端 HTTPS 域名填进 request 合法域名。没填,小程序端 wx.request 会被直接拦掉,表现就是”请求失败”。改完保存,等几分钟生效再测。

六、第 5 步:前端调通 + 参数接收

小程序端:

wx.request({
  url: 'https://你的域名/api/test.php',
  method: 'GET',
  success(res) { console.log(res.data) }
})

后端收 POST 参数用 file_get_contents('php://input') 解析 JSON,或 $_POST(表单形式)。前后端约定好”参数格式 + 返回结构”,联调就顺了。

七、常见”请求失败 / 返回空”排查表

现象原因处理
请求失败(onFail)域名未加白名单 / 非 HTTPS第 5 步补全,改 HTTPS
返回 200 但 data 为空后端报错被吞 / 跨域开错误显示,查日志
中文变 u 乱码没加 UNESCAPED_UNICODE改 json_encode 参数
本地能访问服务器不能防火墙/端口/SSL放通 443,确认证书
POST 收不到参数格式不对用 php://input 取 JSON

八、后端搭建 5 项自查

  • [ ] PHP/MySQL 版本与代码要求匹配
  • [ ] 站点已强制 HTTPS、证书有效
  • [ ] 接口浏览器直访能返回 JSON
  • [ ] 微信后台 request 域名已填
  • [ ] 错误日志已开,便于定位

九、受益人视角

后端搭好,受益的不是写代码的你一个人,而是前端同事不用再背”接口又挂了”的锅、测试同学能跑通完整流程、最终顾客点一下就有数据返回。一套稳的后端,是整条交付链里最沉默也最关键的那个齿轮——它不显眼,但缺了全链路停摆。

十、消费借口:自己写接口不是”折腾”,是”把命脉握手里”

有人犹豫:”买现成源码不就行了,为啥要学搭后端?”身份一换就清楚:你若是站长,懂一点后端,供应方不敢拿加密包糊弄你,出问题你能自己看日志定位,不用每次都求人;你若是开发者,这套能力直接变成接单溢价。你投入的不是”瞎折腾的时间”,是”不被绑死、能自救”的主动权。


📦 卓创源码网:小程序后端 PHP 源码开源未加密、带接口文档,方便你自己搭、自己改。浏览对应栏目:{{下载页链接}} 🔗 后端部署详细步骤看:{{部署教程链接}}

© 版权声明
THE END
喜欢就支持一下吧
点赞202 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容