编写自己的支付接口文件 - StupidNice/tg_faka_bot GitHub Wiki

在这个版本中重新设计了支付接口模块,那么也就意味着大家也可以对接自己想要的接口

├── getways │ ├── alifacepay │ │ ├── alifacepay.py │ │ └── alifacepay.txt │ └── epay │ └── epay.py 支付接口名为文件名,以支付宝当面付为例,支付接口文件为getways/alifacepay/alifacepay.py,同目录下的alifacepay.txt为此接口所需依赖,增加接口时需要额外安装此文件中列出的依赖,安装方法为pip3 install -r alifacepay.txt

传参与返回值 支付接口文件拥有三个函数,分别为submit、query、cancel 三个函数的传参分别为:

submit(price, subject, trade_id) 价格、订单名、订单号 query(trade_id) 订单号 cancel(trade_id) 订单号 submit submit返回类型为字典,成功返回的data分两种类型,由type指定。 url指的是跳转网页支付链接,案例为易支付; qr_code指的是由字典data的键值生成二维码,用户扫描支付,案例为支付宝当面付。 out_trade_no有些支付接口不支持通过机器人系统内部生成的订单号进行查询订单支付状态,在创建订单时会返回一个唯一存在于支付平台的订单号,所以需要将此订单号存库,以供订单轮询时使用

参数名 是否必需 类型 值 描述 status 是 string Success/Faild 订单是否创建成功 type 视情况而定 string url/qr_code 支付网关的支付类型 data 是 string 链接/原因 返回参数,成功则为支付链接/失败则为失败原因 out_trade_no 视情况而定 string 商户外部订单号 当支付接口需要使用到外部订单号时,需要回传此外部订单号存入数据库 成功: 不需要外部订单号,参考易支付: return_data = { 'status': 'Success', 'type': 'qr_code', # url / qr_code 'data': qr_code }

需要外部订单号,参考mugglepay: return_data = { 'status': 'Success', 'type': 'qr_code', # url / qr_code 'data': qr_code, 'out_trade_no': 'ahsdhiv-12bjknsa-12hkvksa-wdkasc' }

失败: return_data = { 'status': 'Failed', 'data': 'API请求失败' } query 由传入订单号查询支付状态 在机器人系统内部,默认使用内部订单号,所以如果支付接口平台只支持使用外部订单号查询的话,请自行根据内部订单号在trade数据表中检索到对应的外部订单号进行查询

成功: return '支付成功'

失败: return '支付失败' cancel 在支付平台取消传入订单号所指定的订单,有些平台不能创建过多额未支付订单,所以就需要此取消订单操作

此函数无返回值,即使不需要取消订单也不能省略此函数,可pass处理