Skip to content

KSHER支付

ksher支付流程:

用户点击支付
⬇️
前端请求pay/order
⬇️
后台请求ksher,ksher返回支付url,后台将url返回给前端
⬇️
前端请求ksher url
⬇️
用户在ksher支付完成
⬇️
ksher重定向到后台接口
⬇️
后台接口检查支付结果,检查完毕重定向到前端页面

admin

1.接口变动:station/create

请求参数:

新增参数:
ksher_pay_info           dict         O            ksher支付配置
参数变动:
prior_pay               str          O            新增"ksher",表示ksher支付


ksher_pay_info内容:
{
    private_key         私钥                                   str
    ksher_app_id         ksher app_id                         str
    fee_type            结算的币种(与ksher商户平台保持一致)      str
}

2.接口变动:station/update

请求参数:

新增参数:
ksher_pay_info           dict         O            ksher支付配置
参数变动:
prior_pay               str          O            新增"ksher",表示ksher支付


ksher_pay_info内容:
{
    private_key         私钥               str
    ksher_app_id        ksher app_id         str
    fee_type            结算的币种(与ksher商户平台保持一致)      str
}

3. 接口变动:station/detail

请求参数:不变

返回参数:

新增参数:
ksher_pay_info           dict         O            ksher支付配置
参数变动:
prior_pay               str          O            新增"ksher",表示ksher支付


ksher_pay_info内容:
{
    private_key         私钥               str
    ksher_app_id        ksher app_id         str
    fee_type            结算的币种(与ksher商户平台保持一致)      str
}

bshop

1. 接口变动:pay/order

请求参数:

原参数不变,下面为新增的参数

page                 str              O            重定向时回传参数
attach               str              O            重定向时回传参数

返回参数: ksher返回参数与其他支付不同,直接返回ksher的url,由前端去跳转

{
    "code":0,
    "msg":"ok",
    "data":{
        "type": "url",
        "pay_url":"https://xxxxxxx"
    }
}

2. 接口变动:pay/charge

参数变动同pay/order接口相同

3.支付完成之后重定向回前端页面

https://bshop.guanmai.cn/v587/?page=index#/order/pay_immediately?page={}&attach={}type=url

page和attach的内容为pay/order接口的参数内容

只有后端变动

bshop

新增接口:pay/ksher/notify/group_id_xxx

请求方法:GET POST

ksher支付完重定向与通知支付结果都到这个接口,检查完支付结果重定向到前端页面

order

1.接口变动: pay/order

增加ksher的支付方式

2.新增接口:pay/ksher/notify/group_id_xxx

处理支付结果

数据库变动

mongo

库表:xnn_core_product_2-wx_pay_info

增加字段: 
"ksher": {
    private_key         私钥                str
    pub_key             公钥                 str
    ksher_app_id        kser_app_id          str
}

mysql

新增表:order-tbl_ksher_trade_flow

字段:
trade_no            str    观麦trade_no,也是ksher的商户订单号
status              int     
channel             str     渠道:wechat alipay
channel_order_no    str     渠道订单号
ksher_order_no      str     ksher订单号
fee_type            str      币种
total_fee           str      支付金额
attach              text


CREATE TABLE `tbl_ksher_trade_flow` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `trade_no` varchar(64) NOT NULL COMMENT 'tbl_trade_flow_new中的',
      `status` tinyint(4) NOT NULL COMMENT '支付状态',
      `channel` varchar(10) NOT NULL COMMENT '支付渠道',
      `channel_order_no` varchar(64) NOT NULL COMMENT '支付平台的交易流水号',
      `ksher_order_no` varchar(64) NOT NULL COMMENT 'ksher订单号',
      `fee_type` varchar(5) NOT NULL COMMENT '支付币种',
      `total_fee` varchar(32) NOT NULL COMMENT '金额',
      `attach` text NOT NULL COMMENT '回调参数',

      `group_id` int(11) NOT NULL COMMENT '组ID',
      `create_time` datetime NOT NULL COMMENT '创建时间',
      `modify_time` datetime NOT NULL COMMENT '修改时间',
      `delete_time` datetime NOT NULL DEFAULT '1-1-1 00:00:00' COMMENT '删除时间',
      `pstatus` int NOT NULL DEFAULT '0' COMMENT '逻辑删除',
      `extra1` int NOT NULL DEFAULT '0',
      `extra2` int NOT NULL DEFAULT '0',
      `extra3` int NOT NULL DEFAULT '0',
      `extra4` varchar(128) NOT NULL DEFAULT '',
      `extra5` varchar(128) NOT NULL DEFAULT '',
      `extra6` varchar(128) NOT NULL DEFAULT '',
      `extra7` datetime NOT NULL DEFAULT '1-1-1 00:00:00',
      `extra8` datetime NOT NULL DEFAULT '1-1-1 00:00:00',
      `extra9` datetime NOT NULL DEFAULT '1-1-1 00:00:00',
      `extra10` decimal(15,4) NOT NULL DEFAULT '0.0000',
      PRIMARY KEY (`id`),
      KEY `idx_trade_no` (`trade_no`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;