交易宝订单系统使用心得

简介

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

特点:无需开发,开箱即用,统一管理支付订单

架构

在这里插入图片描述

项目结构

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

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

配置

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

1. 配置数据库

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

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

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

2. 配置支付信息

  1. 编辑根目录下pay.json文件

  2. 填写真实的第三方支付参数

    {
     "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
       }
     ],
    }
    
  3. 支付证书
    将证书保存至根目录cert文件夹下,并与pay.json配置填写的一致

部署

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

使用

订单管理地址为 https://xxx/admin/index.html 默认帐号admin 密码admin123321

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

场景一:有订单

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

步骤:

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

生成预支付订单的参数:

KaTeX parse error: Expected 'EOF', got '#' at position 13: {cashierUrl}#̲/order/base?app…{appId}&payee=软商网络&orderNo=KaTeX parse error: Expected 'EOF', got '&' at position 10: {orderNo}&̲orderName=技术服务费…{payAmount}&openId=${openId}

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

场景二:无订单

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

自定义金额的订单url规则

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

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

二次开发

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

appsettings.json文件

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

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

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

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

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

事件

内部事件:
支付成功事件 PaySuccessEvent

{
  mchId:'',
  appId:'',
  orderNo:'',
  paymentChannel:1,
  payAmount:1,
  tradeNo:'',
  attach:'',
  buyerId:''
}

支付失败事件 PayFailEvent

事件的发布者:支付宝,微信支付,抖音支付
事件的订阅者:订单,收到成功消息发送CAP消息

cap事件:
支付成功 ORDERS.TRANSACTION.SUCCESS
内容与内部事件内容一致

退款

退款成功RefundSuccessEvent

mchid:'',
payChannel:1,
transaction_id:'',
out_trade_no:'',
out_refund_no:'',
amount:1

CAP事件 ORDERS.REFUND.SUCCESS

转帐

外部事件
rswl.tenpay.transfer.create 微信转帐
参数


rswl.alipay.transfer.create 支付宝转帐

order_no:'' //业务单号
product_code:'' 
trans_amount:'' 交易金额元
alipay_user_id:''  支付宝帐号
remark:''   备注

业务系统生成转帐单,支付系统记录该笔交易

内部事件:
转帐成功 TransferSuccessEvent

orderNo:'',
tradeNo:'',
payChannel:1,
amount:1

转帐失败 TransferFailEvent

orderNo:'',
errMsg:''

cap事件
ORDERS.TRANSFER.SUCCESS 返回内容:

orderNo:'',
tradeNo:'',
payChannel:1,
amount:1

ORDERS.TRANSFER.FAIL 返回内容:

orderNo:'',
errMsg:''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fangqm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值