8000 Releases · Tinywan/notes · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: Tinywan/notes

v0.02

25 Jun 16:36
Compare
Choose a tag to compare
v0.02 Pre-release
Pre-release

支付架构图

pay

业务应用

  • 支付网关
  • 运营管理

外接应用

  • 支付宝
  • 微信

内部功能引用

  • 对账应用
  • 清算应用
  • 消息应用

核心模块

  • 用户
  • 账户
  • 交易订单

MySQL 5.7 用户添加

添加新用户

新建一个用户: CREATE USER 'pay'@'%' IDENTIFIED BY 'pay_123456';
新建一个用户名为pay的用户,密码为pay_123456%表示可以远程连接数据库
刷新权限:flush privileges;

为用户创建数据库

create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

给用户分配权限

授予用户通过外网IP对于该数据库的全部权限

grant all privileges on `testdb`.* to 'test'@'%' identified by '123456';

授予用户在本地服务器对该数据库的全部权限

grant all privileges on `testdb`.* to 'test'@'localhost' identified by '123456';

刷新权限

flush privileges;

支付系统

基础设施

  • 1、服务器(Linux)
  • 2、域名(备案),能提供Https服务更好
  • 3、环境搭建
    • WEB服务:Openresty(Nginx)
    • 开发语言 PHP > 7.0
    • 数据库
      • 关系型: MySQL >= 5.7
      • 非关系型: Redis >= 3.2
    • 开发框架:TP5.0
    • 依赖扩展
      • PHP-PDO扩展
      • PHP-Redis扩展
      • PHP-Qcord二维码扩展
      • PHP-GD库扩展
      • WorkerMan 服务

上游渠道

  • 1、对接上游
  • 2、支付方式
    • 银联网关(快捷)
    • 支付宝(H5、扫码、WAP)
    • 微信(H5、扫码、WAP)

核心系统

  • 1、代码自动化部署(coding集成)
  • 2、渠道对接开发
  • 3、商户管理
  • ...

下游渠道

  • 1、接口文档完善
  • 2、风控
  • 3、对接渠道
  • 4、业务扩展

init

07 Jun 10:21
Compare
Choose a tag to compare

赤龙支付

支付账号信息

  • 银行卡号:360101198309255010
  • 密码:hswl0571
  • 交易密码:446688

平台信息

和壹付平台支付

汇支付平台

如何接入?

  • 【渠道管理】-【渠道配置】添加平台信息
  • 【支付渠道】配置使用哪一种支付方式

如何测试?

测试配置信息

进入后台管理

  • 【商户模块】-【商户列表】-测试账号
    • 编辑:【渠道商号】->【添加渠道】如:和壹付( 广州半贸贸易有限公司)
    • 编辑:【支付开通】->开启要具体测试【支付方式】进行编辑
    • 如要测试【银联网关】,选择编辑,在下拉列表中选择【支付渠道】就可以了
  • 测试DEMO

支付(测试)

gateWay($option)接收到的参数如下:

{
	"total_fee": "1",
	"goods": "银联测试",
	"order_sn": "22161528351633",
	"client": "web",
	"bank_code": "CCB",
	"client_ip": "127.0.0.1",
	"notify_url": "http:\/\/pay.env\/index\/index\/test10",
	"return_url": "http:\/\/pay.env\/index\/index\/test22",
	"mch_id": "12001",
	"version": "1.0",
	"order_no": "S120011806071407171800"
}
同步接口返回数据:
  • 同步通知地址:https://pay.hongnaga.com/return
  • returnUrl(PayRepository $payRepository)网关地址调用支付接口PayRepositorynotify()
  • 支付参数
    • 渠道:$channel_str
    • 商户订单号:$mch_order_no
    • 商家ID:$mch_id
  • 通过App::invokeClass([$channel_str])实例化具体的渠道支付类
  • 返回一个跳转地址URL
{
  "code" : "00000",
  "message" : "成功",
  "payUrl" : "http://saas.yeeyk.com/saas-trx-gateway/order/fetchPay?payNo=201806071115482039216151SP",
  "trxMerchantNo" : "80086000452",
  "hmac" : "7f8dde1f2f6c032facd469bad79ceea5"
}
异步回调测试
  • 异步通知地址:https://pay.hongnaga.com/notify
  • notify(PayRepository $payRepository)网关地址调用支付接口PayRepositorynotify()
  • 接受GET/POST数据,这里接受到的数据为一个数组$data
  • 根据判断该回调属于哪个支付渠道(支付 or 提现)
  • 支付参数
    • 渠道:$channel_str
    • 商户订单号:$mch_order_no
    • 商家ID:$mch_id
  • 通过App::invokeClass([$channel_str])实例化具体的渠道支付类
  • 设置商户渠道配置 $object->setMchChannelConfig($mch_id)
  • 具体渠道异步处理$object->notify($data),如:Saas.php
    • 参数验证
    • 签名验证
    • 第三方接口返回数据验证
    • 根据第三方接口参数返回一个数组,成功或者错误
  • 判断是 ** 支付订单** 还是 提现订单
    • 支付订单
      • 调用方法:payNotify($channel_str, $result, $is_send_notify)
      • 查询订单、订单判断
      • 查询渠道配置
      • 判断订单状态,-1 支付失败 0 未支付 1 已支付 2 已退款
      • 开启事务修改订单状态(前提是第三方返回结果必须是成功的,success 结果)
      • 为商户增加余额
      • 增加余额明细,数据表:jd_merchant_balance_record
      • 如果订单状态notify_status != 'yes'并且需要通知给客户
      • 通过sendNotify($order_no, $type = 1)发送给客户异步通知
      • 根据发送状态修改订单发送状态notify_status == yes
    • 提现订单
  • 返回数据格式
{
  "data": {
    "reCode": "1",
    "trxMerchantNo": "800666000037",
    "trxMerchantOrderno": "1504233022730",
    "result": "SUCCESS",
    "productNo": "WX_YF",
    "memberGoods": "1504233022730",
    "amount": "10.00",
    "retMes": "",
    "hmac": "203r5riLq9jJ7rt7e348yzG5fBG96U838a",
  },
  "code": "000000" // 查单返回码
}

提现/代付(测试)

-----------------------------------------------------------------

商户同步/异步响应参数

跟多参数了解:赤龙支付

同步接口返回数据

为了模拟客户的请求访问

设置同步回调地址为赤龙支付的:http://pay.yo1c.cc/index/index/test22方便测试

{
	"order_no": "S120011806071532428535",
	"mch_order_no": "89941528356762",
	"goods": "银联测试",
	"total_fee": 1,
	"payment": "gateWay",
	"rate": 0.007,
	"service_charge": 0.002,
	"status": 1,
	"create_time": "2018-06-07 15:32:43",
	"pay_time": "2018-06-07 15:33:16",
	"sign": "19ad4aeb462a13200caf24d0724fb4c3"
}
0