
问答社区
运势测算系统源码+详细配置和使用说明集成微信支付和支付宝支付功能
分类:微信程序
# 独立开发:运势测算系统源码 - 支付模块配置指南(运势测算系统源码完善中...)需要的朋友可以在底部评论复制网盘下载地址测试!

本文档提供了运势测算系统支付模块的详细配置和使用说明,帮助您正确集成微信支付和支付宝支付功能。
## 目录结构
| 文件路径 | 功能描述 |
|-------------------------|------------------------------|
| backend/api/payment.php | 支付API主入口 |
| backend/config/payment.php | 支付配置文件 |
| backend/controllers/PaymentController.php | 支付控制器 |
| backend/core/Payment.php | 支付核心类 |
| backend/database/init_payment.sql | 数据库初始化脚本 |
| backend/includes/db_connect.php | 数据库连接文件 |
| backend/payments/alipay_notify.php | 支付宝回调处理 |
| backend/payments/wechat_notify.php | 微信回调处理 |
| backend/payments/README.md | 配置文档(本文档) |
|-------------------------|------------------------------|
| backend/api/payment.php | 支付API主入口 |
| backend/config/payment.php | 支付配置文件 |
| backend/controllers/PaymentController.php | 支付控制器 |
| backend/core/Payment.php | 支付核心类 |
| backend/database/init_payment.sql | 数据库初始化脚本 |
| backend/includes/db_connect.php | 数据库连接文件 |
| backend/payments/alipay_notify.php | 支付宝回调处理 |
| backend/payments/wechat_notify.php | 微信回调处理 |
| backend/payments/README.md | 配置文档(本文档) |
```
## 环境要求
- PHP 7.0+ (推荐7.3+)
- MySQL 5.6+ 或 MariaDB 10.0+
- 已开通微信支付商户号
- 已开通支付宝商户号
- SSL证书(生产环境)
## 数据库配置
1. 首先创建数据库:
```sql
CREATE DATABASE suanshu DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 执行数据库初始化脚本:
```sql
SOURCE backend/database/init_payment.sql;
```
该脚本会创建以下表:
- `ss_orders` - 订单表
- `ss_payment_logs` - 支付日志表
- `ss_payment_notifications` - 支付通知表
3. 配置数据库连接参数:
编辑 `backend/config/database.php` 文件,设置正确的数据库连接信息。
## 支付配置
编辑 `backend/config/payment.php` 文件,配置微信支付和支付宝支付参数。
### 微信支付配置
```php
'wechat' => [
'app_id' => 'YOUR_APP_ID', // 微信公众号APPID或小程序APPID
'mch_id' => 'YOUR_MCH_ID', // 微信支付商户号
'api_key' => 'YOUR_API_KEY', // 微信支付API密钥
'notify_url' => SYSTEM_URL . '/backend/payments/wechat_notify.php', // 回调URL
'sandbox' => false, // 是否使用沙箱环境
'ssl_cert_path' => '', // SSL证书路径(可选)
'ssl_key_path' => '', // SSL密钥路径(可选)
],
```
### 支付宝支付配置
```php
'alipay' => [
'app_id' => 'YOUR_APP_ID', // 支付宝APPID
'merchant_private_key' => 'YOUR_PRIVATE_KEY', // 商户私钥(PEM格式)
'alipay_public_key' => 'ALIPAY_PUBLIC_KEY', // 支付宝公钥(PEM格式)
'gateway_url' => 'https://openapi.alipaydev.com/gateway.do', // 支付宝网关
'notify_url' => SYSTEM_URL . '/backend/payments/alipay_notify.php', // 异步通知URL
'return_url' => SYSTEM_URL . '/frontend/payment_result.html', // 同步返回URL
'charset' => 'UTF-8', // 字符集
'sign_type' => 'RSA2', // 签名类型
'version' => '1.0', // 版本
],
```
### 产品价格配置
```php
'prices' => [
'bazi' => 99.00, // 八字精批价格
'hehun' => 129.00, // 八字合婚价格
'yinyuan' => 89.00, // 姻缘测算价格
'tarot' => 69.00, // 塔罗占卜价格
// 其他产品价格...
],
```
### 支付方式开关
```php
'enabled_payment_methods' => [
'wechat' => true, // 启用微信支付
'alipay' => true, // 启用支付宝支付
],
```
## 证书配置
### 微信支付证书
如使用微信支付退款等需要证书的功能,请将证书文件放置在安全目录,并在配置文件中指定证书路径。
### 支付宝证书
支付宝支付使用RSA密钥对进行签名验证,您需要生成密钥对并在支付宝开放平台进行配置。
## 回调URL配置
确保您的回调URL(notify_url)满足以下要求:
1. 必须是外网可访问的URL
2. 不能包含端口号(除非是80或443)
3. 生产环境必须使用HTTPS协议
4. 确保服务器防火墙允许外部访问
## 支付API使用
### 前端调用示例
创建订单:
```javascript
function createOrder(productType, productData) {
const userId = getCurrentUserId();
const paymentType = 'wechat'; // 或 'alipay'
const paymentMethod = 'jsapi'; // 或 'native', 'h5'
return fetch('../backend/api/payment.php?action=create_order', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_id: userId,
product_type: productType,
product_data: productData,
payment_type: paymentType,
payment_method: paymentMethod
})
})
.then(response => response.json())
.then(data => {
if (data.success) {
return data.data;
} else {
throw new Error(data.message);
}
});
}
```
查询订单:
```javascript
function queryOrder(orderNo) {
return fetch(`../backend/api/payment.php?action=query_order&order_no=${orderNo}`)
.then(response => response.json())
.then(data => {
if (data.success) {
return data.data;
} else {
throw new Error(data.message);
}
});
}
```
## 测试环境配置
### 微信支付沙箱
如需使用微信支付沙箱环境进行测试,请将配置中的 `sandbox` 设置为 `true`:
```php
'sandbox' => true,
```
### 支付宝沙箱
支付宝提供了专门的沙箱环境,您可以使用沙箱APPID和网关进行测试:
```php
'app_id' => 'SANDBOX_APP_ID',
'gateway_url' => 'https://openapi.alipaydev.com/gateway.do',
```
## 系统部署要求
要在云服务器上成功部署此应用,需要满足以下要求:
类别 | 子类别/步骤编号 | 具体要求/步骤内容 |
---|---|---|
服务器环境 | Web服务器 | Apache 2.4+ 或 Nginx 1.14+ |
PHP版本 | PHP 7.4+(推荐PHP 8.0+) | |
MySQL版本 | MySQL 5.7+ 或 MariaDB 10.3+ | |
PHP扩展 | PDO、OpenSSL、mbstring、simplexml、json、session | |
配置步骤 | 1 | 安装Web服务器、PHP和MySQL |
2 | 创建数据库和用户,导入数据库结构 | |
3 | 上传项目文件并设置正确的文件权限 | |
4 | 配置数据库连接信息 | |
5 | 配置系统URL和支付信息 | |
6 | 配置Web服务器(Apache或Nginx) | |
7 | 配置SSL证书启用HTTPS | |
8 | 在支付平台配置回调URL | |
安全配置 | 1 | 生产环境关闭调试模式 |
2 | 为数据库用户设置强密码 | |
3 | 定期备份数据库 | |
4 | 配置防火墙,只开放必要端口 | |
5 | 保护配置文件不被Web访问 | |
6 | 使用HTTPS加密传输 |
以上工作完成后,系统应该可以在云服务器上正常运行,并提供完整的测算服务和支付功能。用户只需要根据实际环境修改相应的配置文件即可完成部署。
根据提供的注释文字内容,以下是生成的参考表格形式:
类别 | 子类别/步骤编号 | 具体要求/步骤内容 |
---|---|---|
常见问题解决 | 支付回调失败 | 1. 检查回调URL是否可外网访问 |
2. 确认服务器是否正确接收到回调请求 | ||
3. 查看日志文件中的错误信息 | ||
4. 检查签名验证是否通过 | ||
支付参数错误 | 1. 确认配置文件中的APPID、商户号等参数正确 | |
2. 检查签名生成和验证逻辑 | ||
3. 确保参数格式符合支付平台要求 | ||
订单创建失败 | 1. 检查数据库连接是否正常 | |
2. 确认ss_orders表结构正确 | ||
3. 查看日志获取详细错误信息 | ||
安全注意事项 | - | 1. 保护好API密钥和证书文件,不要泄露 |
2. 生产环境使用HTTPS协议 | ||
3. 定期更新密码和密钥 | ||
4. 对支付参数进行严格验证 | ||
5. 记录支付日志以便审计和排查问题 |
## 更新日志
- 2025-08-29:初始化支付模块配置文档
- 2025-08-29:完善微信支付和支付宝支付配置说明
- 2025-08-30:添加数据库初始化脚本说明
- 2025-08-30:更新安全注意事项和常见问题解决方法