快速使用
打开微信或支付宝扫码体验
系统简介
交易宝软件系统使用asp.net core +vue3技术开发,支持在windows,linux等多种系统上运行。更详细的介绍请查看这里
注意:使用本系统前,请提前向第三方支付申请商户号,拿到第三方支付商户配置参数后即可开始使用。
软件环境
linux或windows服务器 ,.net6,nginx, myssql , 消息队列软件如RabbitMQ, Kafka,RedisStream,Nats等任选一种
工作流程
在您的业务系统上生成业务订单,然后传参给交易宝系统即可;工作流程如下:
- 业务系统上生成业务订单,传递订单信息给交易宝收银台
- 收银台根据用户扫码环境自动发起支付
- 支付完成,交易宝传递消息给业务系统,并统计支付单信息
项目结构
/
├── appsettings.json # 项目参数配置
├── pay.json # 支付参数配置
├── log4net.config # 项目日志配置
├── cert # 证书目录
│ └── tenpay # 微信支付证书
│ └── alipay # 支付宝证书
├── wwwroot
│ └── admin # 交易宝后台管理文件夹
│ └── cashier # 交易宝收银台文件夹
└── index.html # 项目首页
项目根目录下有三个重要的文件 appsettings.json
,pay.json
, log4net.json
appsettings.json保存项目配置
pay.json 保存支付配置
log4net.json保存日志配置
根目录下的cert目录保存的是支付证书
项目根目录 下wwwroot目录,admin文件夹是交易宝后台管理系统 cashier是交易宝收银台系统,这两个目录名可随意更改
部署项目
1. 创建数据库
payment.mysql.sql是交易宝所需要的mysql版本数据库表,创建数据库后,导入即可
2. 项目配置
- appsettings.json文件
项目根目录下appsettings.json文件,可配置的项有数据库连接,使用的消息队列,跨域的域名,JWT参数,微信公众号参数等信息
消息队列配置
"MQ": {
"Name": "InMemory", //当前使用的消息队列名称
"Storage": "MySql", //使用mysql存储消息数据
"UseDashboard": true, //是否使用图表查看和管理消息
"InMemory": {
},
"RabbitMQ": {
"HostName": "127.0.0.1",
"VirtualHost": "rswl",
"UserName": "admin",
"Password": "admin",
"ExchangeName": "rswl_queue"
},
"Nats": {
"Server": "nats://localhost:4222"
},
"RedisStreams": {
"Server": "redis-node-0:6379,password=cap"
},
"Kafka": {
"Server": "localhost:9092"
}
},
默认使用内存做为消息队列和存储,可自定义消息队列与存储
Name值决定了系统使用的消息队列类型
Name定义 | 描述 | 默认 |
---|---|---|
InMemory | 使用内存作为消息队列 | 是 |
RabbitMQ | 使用RabbitMQ作为消息队列 | 否 |
Nats | 使用Nats作为消息队列 | 否 |
RedisStreams | 使用RedisStreams作为消息队列,需要redis5.0以上 | 否 |
Kafka | 使用Kafka作为消息队列 | 否 |
Storage值决定系统存储消息的方式,数据库连接从节点ConnectionStrings:DefaultConnection
获取
Storage定义 | 描述 | 默认 |
---|---|---|
InMemory | 使用内存存储消息 | 是 |
MySql | 使用MySql存储消息 | 否 |
SqlServer | 使用SqlServer存储消息 | 否 |
MongoDB | 使用MongoDB存储消息 | 否 |
更换消息队列后,要重启应用
注意应用软件版本
跨域支持
appsettings.json文件,节点CorsPolicy 添加域名,需重启项目 ,例
"CorsPolicy": [ "http://localhost:5001", "https://wx.rscode.cn", "https://pay.rscode.cn", "https://pan.rs888.net" ],
pay.json文件
项目根目录下pay.json文件,是支付的参数配置
json{ "Default": { "TenpayMchId": "", //默认使用的微信支付商户id "AppId": "" //默认使用的Appid }, "Payment": [ { "PaymentChannel": 1, //1表示微信支付 "PaymentStatus": true, //true表示己启用 "MchType": 0, "MchId": "", //微信商户号 "Rate": 0.6, //微信支付费率 "APIKey": "", //微信支付APIKEY "APIKeyV3": "", //微信支付apikey v3版 "PublicKey": "", //不填 "PrivateKey": "cert/xxxx/apiclient_cert.p12", //微信P12证书路径,保在根目录cert文件夹中 "CertPassword": "", //商户号 "NotifyUrl": "https://xxx/api/tenpay/notify" //微信支付回调地址 }, { "PaymentStatus": true, //true表示己启用 "PaymentChannel": 2, //2表示支付宝 "Rate": 0.6, //支付宝费率 "MchId": "", //支付宝商户号 "PrivateKey": "", //转换后的私钥 "PublicKey": "cert/alipay/appCertPublicKey_xx4.crt", //应用公钥 "PlatformPublicKey": "cert/alipay/alipayCertPublicKey_RSA2.crt", //支付宝平台公钥证书 "PlatformRootCert": "cert/alipay/alipayRootCert.crt", //支付宝平台根证书 "NotifyUrl": "https://xxx/api/alipay/notify",//支付宝回调地址 "MchType": "0" } ], "App": [ { "AppId": "", //应用id "MchId": "1487740992", //app使用的商户号 "Token": "", "AppSecret": "ab5a2daa9", "PayChannel": 1, "Description": "weihuo mp", "AppType": 1 } ], }
注意:json配置文件中的路径,在linux系统中使用
/
做为分隔符 , windows系统中使用\
做为分隔符
登录帐号
初始帐号 ,默认帐号 admin
默认密码admin123321
使用支付
其它应用接入支付,以官方网址为例
假设你的收银台地址为 https://pay.rscode.cn/cashier/index.html
某个应用有个单号168095643648为的业务订单需要支付300元,那么收款地址即为 https://pay.rscode.cn/cashier/index.html#/order/base?appid=wx7c829604a62b02e8&orderNo=168095643648&orderName=技术服务费&payAmount=300
PC端可将该链接生成二维码,手机扫码后即可自动发起支付;移动端直接访问该地址即可发起支付