Skip to content

还在为调用第三方支付接口头疼吗?还在为应用程序重复开发支付功能吗?给大家推荐一款好用的开源收付款软件

简介

交易宝是管理订单支付的软件系统,可对多个应用的支付业务进行统一管理和运营,为你节省时间和精力,让你专注于核心业务,实现更高的效率和利润。

特点:无需开发,开箱即用,统一管理支付订单,支持个人支付宝微信支付线上收款

官方文档 下载交易宝程序包

架构

交易宝订单系统

项目结构

整个项目的目录结构大致如下:

bash
.
├── README.md                         # 说明文档
├── Rswl.Payment.Web.dll              # 主应用
├── wwwroot                          
     └── cashier                     # 收银台系统目录
     └── admin                       # 订单管理系统目录
├── cert                              # 第三方支付证书文件路径
├── appsettings.json                  # 系统配置
└── pay.json                          # 支付配置

配置

下载交易宝程序包,准备好申请的第三方支付参数信息和mysql数据库

1. 配置数据库

  1. 使用提供的mysql脚本创建数据库

  2. 编辑根目录下的appsettings.json文件 变更节点 ConnectionStrings:DefaultConnection值为真实的数据库连接

    json
      "ConnectionStrings": {
        "DefaultConnection": "Server=127.0.0.1;uid=root;pwd=123456;database=rswl_payment;port=3306;",
      },

    默认使用内存消息队列发消息,可修改成实际使用的消息队列服务

    json
     "MQ":{
     	"Name":"InMemory", //当前使用的消息队列 ,可选值:InMemory,RabbitMQ,Nats,RedisStreams,Kafka
     	"Storage":"MySql"  //默认使用mysql存储mq消息
     }

2. 配置支付信息

  1. 编辑根目录下pay.json文件
  2. 填写真实的第三方支付参数
    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
       }
     ],
    }

部署

交易宝支持windows,linux系统,可在安装.net6以上的sdk的环境中运行 可参考这篇文章安装.net环境,之后上传文件到网站根目录,配置你的网站

使用

参考实例:查看订单二维码演示

场景一:有订单

应用生成业务订单信息,并将订单参数传给交易宝,由交易宝生成预支付订单,调用第三方支付

步骤:

  1. 业务系统生成业务订单
  2. 业务系统拼接预支付订单url
  3. 用户扫码完成支付

生成预支付订单的参数:

${cashierUrl}#/order/base?appid=${appId}&payee=软商网络&orderNo=${orderNo}&orderName=技术服务费&payAmount=${payAmount}&openId=$

url参数名称参数说明必填
cashierUrl收银台地址,例:https://pay.rscode.cn/cashier/index.html
appIdappid应用id
payee收款方名称
orderNo订单号
orderName订单名称
payAmount支付金额
openId微信支付用 户openid

场景二:无订单

如果业务应用不提供订单信息,用户可以自己输入金额支付,完成远程收款

自定义金额的订单url规则

https://xxx/cashier/index.html?orderType=2&payee=软商网络

可以将生成的预支付订单生成二维码,供用户扫码支付

场景三:使用个人收款码完成线上业务

下载AI工具箱,运行AI工具箱协助线上业务

二次开发

应用需要向交易宝系统提供业务订单创建与拉取接口,可在appsettings.json自定义接口地址

appsettings.json文件

json
"jyb": {
  "OrderCreateUrl": "https://xxx/api/order/create", //业务系统创建订单接口 post
  "OrderFetchUrl": "https://xxx/api/order/info"     //业务系统拉取订单接口 post
},

业务系统返回订单JSON字符串格式

json
{
    "orderno":'',
    "order_name":'',
    "pay_amount":0,
    "order_status":0,
}

正确配置业务系统拉取订单接口,因为交易宝收银台验证金额时会用到

特殊需求,可以通过修改交易宝源码 AppOrderController进行修改