船说 CMS 支付接口怎么对接
看完这篇,你能在自己的船说 CMS 上把支付宝、微信或第三方聚合支付接通,让用户下单后能正常付款并自动到账。
第一步:确认你的船说 CMS 版本和支付模块形态
这一步要搞清楚「支付功能到底是 CMS 自带的,还是靠插件/扩展挂上去的」,因为它决定了后面参数填在哪里。
登录网站后台,看首页右下角或「关于系统」里的版本号,常见的写法是 v3.1、v3.2 这种。然后到服务器上看站点目录,重点看有没有这几个位置:
/Plugins/或/Plugin/(插件目录)/App_Code/(.NET 的公共代码目录)Web.config(数据库连接和全局配置)
注意:船说 CMS 是 .NET 程序,支付相关的回调文件通常是
.aspx后缀,不是.php。如果你在网上搜到的教程全是.php文件路径,那是别的 CMS 的,别硬套。
如果 /Plugins/ 里已经有一个支付插件文件夹,说明你走的是插件路线;如果没有,说明用的是后台内置的支付设置,直接进下一步。
第二步:先去支付渠道拿商户参数
这一步要拿到「商户号 + 密钥」这套凭据,没有它后面所有配置都是空的。
支付宝:登录 open.alipay.com,进入「控制台 → 产品中心 → 电脑网站支付」,签约开通后,在「应用详情 → 开发设置」里拿到三个东西:APPID、应用私钥、支付宝公钥。密钥建议用官方工具生成,别手写。
微信支付:登录 pay.weixin.qq.com,在「账户中心 → 商户信息」里拿商户号 mchid,在「账户中心 → API 安全」里设置 APIv3 密钥并下载商户证书。
第三方聚合支付(易支付、码支付这类):平台会直接给你一个商户 PID、一个通信密钥 KEY,以及一个网关地址(形如 https://xxx.com/submit.php)。这类最省事,个人站常用。
注意:密钥只在生成时显示一次,复制后先存到本地记事本里,关掉页面就找不回来了,只能重新生成。
第三步:在后台填支付参数
这一步把上一步拿到的凭据填进系统,填完支付方式就会出现在下单页。
进后台,路径是「系统 → 系统设置 → 支付设置」(部分版本叫「财务管理 → 支付接口」)。点「添加支付方式」,按下表对应填写:
| 字段 | 支付宝填 | 微信填 | 聚合支付填 |
|---|---|---|---|
| 接口类型 | 支付宝官方 | 微信官方 | 易支付/自定义 |
| 商户号 | APPID | mchid | PID |
| 密钥 | 应用私钥 | APIv3 密钥 | KEY |
| 网关地址 | 留空 | 留空 | 平台给的地址 |
填完后把这一条的「状态」改成启用,保存。
注意:私钥粘贴时不要带换行和空格,也不要带
-----BEGIN这类头尾标记,多数版本只认纯字符串。
第四步:配置异步通知地址
这一步设置「用户付完钱,支付平台怎么通知你的网站」,配错这一步会表现为「钱扣了但订单还是未支付」。
在同一个支付设置页找到「异步通知地址」(notify_url)和「同步跳转地址」(return_url)两个框,填你自己的域名,例如:
- 异步通知:
https://你的域名/pay/notify.aspx - 同步跳转:
https://你的域名/pay/return.aspx
具体文件名以你站点 /pay/ 目录下实际存在的文件为准,别照抄。
三个硬性要求:必须是 https、必须是公网能访问的域名(不能是内网 IP 或 localhost)、地址后面不能带任何参数。
注意:如果服务器开了防火墙或 CDN,要放行支付平台的通知 IP,否则通知请求会被拦掉,订单永远不回调。
第五步:用一分钱实测一遍
这一步验证全链路通了没有。
把商品价格临时改成 0.01,用手机扫码真付一次,然后看后台订单状态是否从「待支付」变成「已支付」。如果没变,去后台「系统 → 日志管理」看有没有回调记录。
常见报错和处理:
- 签名错误:九成是密钥填错或支付宝公钥和应用公钥搞反了。
- 回调无记录:说明通知根本没到服务器,检查域名能不能被外网访问、
notify_url是否写错。 - 重复回调:船说 CMS 正常会做去重,如果订单被重复处理,检查插件代码里有没有对同一订单号做判断。
第六步:上线前的三项检查
把测试价改回正常价;把支付设置里的「调试模式/沙箱」关掉;确认订单表里有唯一索引防止重复回调。做完这三项再对外开站。
小结
- 先分清是插件支付还是内置支付,
.aspx是船说 CMS 的回调文件后缀。 - 参数只有三个核心:商户号、密钥、网关地址,密钥只显示一次,记得先存。
- 回调地址必须 https + 公网可访问 + 不带参数,这是最容易翻车的一步。
- 上线前用 0.01 元真付一次,看订单状态是否自动变更,比看日志更直接。
原文链接:https://www.gj0.com/thread-451.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。