tans / OpenPay

微信支付独立收银台, 为多个不同系统提供支付和提现接口. 实现快速对接收款以及发佣金,发红包等提现功能。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenPay - 微信支付独立收银台

为多系统提供统一的支付和提现接口. 实现快速对接收款以及发佣金,发红包等提现功能。

特点

  1. 一次接入,收支分离。

  2. 无状态,无需数据库,轻松的部署运维。

  3. 安全,证书密钥统一管理。

使用场景

  1. 方便新系统快速接入已有支付

  2. 付款和提现账号分离,为三方系统实现佣金提现发红包等营销功能。

使用案例

https://denopark.com 网站无需备案下,接入支付以及实现提现功能。

大转盘现金提现 外部系统收款

实现原理

通过参数的系统级加密,OpenPay为其他系统提供微信公众号支付, 网页登陆,商户转账零钱等实现,其他系统只需要生成带加密认证的访问链接即可。

接口参数

统一登陆

用户跳转到此链接后会带上openid参数返回

  • URL: /login
  • QUERY:
{
	return_url:'返回链接',

	sign: '签名'
}

统一支付

  • URL: /pay

  • QUERY:

{
	money: "分", //整数
	order_id: "", //唯一订单号,避免重复支付
	callback_url: "", //支付成功回调接口
	sign: '签名'
}

统一提现到零钱

  • URL: /take

  • QUERY:

{
	order_id: '提现单号',
	money: '提现金额',
	callback_url: "提现成功回调",
	sign: '安全签名'
}

部署

需要开通微信支付,以及绑定商户的认证公众号。

  1. git pull
  2. npm install
  3. cp .env.default .env (补全微信支付和公众号参数)
  4. npm start

常见问题

  1. 如何确保安全

调用通过系统级签名确保是授信系统的调用

  1. 提现重放问题

单号唯一,统一提现单不能重复提现。再有通过限制微信支付的后台设置调整风险级别。

提现时候不会校验业务逻辑。所以需要确保签名正确,还有提现单生成就扣余额, 避免延迟并发问题。

  1. 如何查看记录

微信官方或者系统日志,目前没有接入数据库

  1. 如何对接

当你遇到微信支付的使用问题,你就知道这系统如何对接。

代码在现有系统抽离出来,欢迎star

About

微信支付独立收银台, 为多个不同系统提供支付和提现接口. 实现快速对接收款以及发佣金,发红包等提现功能。