Skip to content

快速使用

扫码体验

打开微信或支付宝扫码体验

系统简介

交易宝软件系统使用asp.net core +vue3技术开发,支持在windows,linux等多种系统上运行。更详细的介绍请查看这里

注意:使用本系统前,请提前向第三方支付申请商户号,拿到第三方支付商户配置参数后即可开始使用。

软件环境

linux或windows服务器 ,.net6,nginx, myssql , 消息队列软件如RabbitMQ, Kafka,RedisStream,Nats等任选一种

工作流程

在您的业务系统上生成业务订单,然后传参给交易宝系统即可;工作流程如下:

  1. 业务系统上生成业务订单,传递订单信息给交易宝收银台
  2. 收银台根据用户扫码环境自动发起支付
  3. 支付完成,交易宝传递消息给业务系统,并统计支付单信息

项目结构

tex
/
├── 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. 项目配置

  1. appsettings.json文件

​ 项目根目录下appsettings.json文件,可配置的项有数据库连接,使用的消息队列,跨域的域名,JWT参数,微信公众号参数等信息

消息队列配置

json
"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 添加域名,需重启项目 ,例

json
"CorsPolicy": [ "http://localhost:5001",  "https://wx.rscode.cn", "https://pay.rscode.cn", "https://pan.rs888.net" ],
  1. 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端可将该链接生成二维码,手机扫码后即可自动发起支付;移动端直接访问该地址即可发起支付