OpenPay icon indicating copy to clipboard operation
OpenPay copied to clipboard

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

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