原文链接
对于个人收款支付系统,由于没有营业执照,微信、支付宝官方提供的接口无法使用,个人二维码收款又无法完成支付系统后续工作,这个问题一直以来都没有找到一个适合的解决方案。经过不断尝试,最终找到了一个非常好用的第三方工具来解决这个问题——GOGO支付,提供API接口,支付成功可回调接口。
GOGO支付简介
GOGO支付是一款个人收款服务平台,使用前需要注册使用,会给APP_ID和APP_SECRET,默认是体验版,免费使用。后续不需要提供任何个人信息,无需担心任何个人信息泄露问题。缺点就是免费体验版需要自主配置监控端挂机,就是在手机上安装一个APP,这与它的工作原理有关。
工作原理
首先,需要在手机上安装GOGO提供的APP,然后APP会监测支付宝和微信的收款消息,这步需要用户在手机上提供权限。
用户在GOGO后台配置服务端信息,如下图,异步回调会在用户支付成功后由GOGO后端发送POST请求到配置的接口上,需要写代码验证,验证成功返回success即可。同步回调会在用户支付成功的同时直接跳转页面到配置的指定链接。
当用户通过扫码支付正确金额后,会通过监控端APP检测支付宝或微信是否收到相应款数,当确认到收款金额无误GOGO后端会触发回调,回调会发送到用户配置的回调接口上,此时一次支付过程结束。
配置收款码
除了基本的一些系统配置可以自定义调整外,在商户后台必须要配置好收款二维码。至少添加任意金额的微信收款码和支付宝收款码各一张,才能正常使用微信支付和支付宝支付。
- 支持使用固定金额的收款二维码,无需客户输入金额。
- 支持多个收款码自动切换轮询,避免收款码失效。
API接入
这里就介绍两个比较重要的API,其余API请查看API文档
创建订单
- 请求地址:https://www.gogozhifu.com/createOrder
- 请求方式:POST/GET
- 参数说明:
参数 | 参数类型 | 参数说明 |
---|---|---|
payId | 字符串 | 【必传】商户订单号,可以是时间戳,不可重复 |
type | 整数 | 【必传】微信支付传入1 支付宝支付传入2 |
price | 字符串 | 【必传】订单金额,保留两位小数的字符串,例如“1.00” |
sign | 字符串 | 【必传】签名,计算方式为将各个参数按顺序拼接后用md5加密, md5(APPID+payId+param+type+price+APPSECRET) |
param | 字符串 | 【可选】传输参数,将会原样返回到异步和同步通知接口 |
isHtml | 整数 | 【可选】传入1则自动跳转到支付页面,否则返回创建结果的json数据 |
notifyUrl | 字符串 | 【可选】传入则设置该订单的异步通知接口为该参数,不传或传空则使用后台设置的接口 |
returnUrl | 字符串 | 【可选】传入则设置该订单的同步跳转接口为该参数,不传或传空则使用后台设置的接口 |
title | 字符串 | 【可选】订单主题、类型,之后可根据该值统计分析数据,最多10个字符 |
content | 字符串 | 【可选】描述订单具体内容、备注等说明文字 |
returnParam | 整数 | 【可选】默认是0,传1即可让官方支付页跳转returnUrl带上回调通知的参数 |
- 返回数据(示例): {“code”:1,“msg”:“成功”,“data”:{“payId”:“1547129707139”,“orderId”:“201901102220147500”,“payType”:2,“price”:0.1,“reallyPrice”:0.1,“payUrl”:“HTTPS://QR.ALIPAY.COM/FKX03500Z2ZYWA0ELYU123”,“isAuto”:1,“state”:0,“timeOut”:5,“date”:1547130014}}
- 返回数据说明:
参数 | 参数类型 | 参数说明 |
---|---|---|
code | 整数 | 返回代码(1 |