[更新 2018-10-22]
支付成功的状态码变更了,PAID
变为了TRADE_PAID
,建议兼容处理,详情看兼容代码
[更新 2018-09-05]
收到有赞云邮件(如下),交易相关的消息和接口已更新且旧版本即将下线,这个Demo代码长久没有更新,也借此机会更新一把。
有赞开放平台已正式推出V3版推送服务,原有的商品V1和交易V1/V2版推送 ,包含的内容较单一,无法满足不同业务场景下的开发需求,如您正在使用,请在9月底之前完成V3版本切换,切换期后,我们将停止老版本的维护和开放。
同时,推送的数据采用最新的订单详情4.0接口,开放平台推出了交易4.0接口,后续也会停止对老接口(3.0版本)的维护,请开发者在9月底之前完成交易接口的对接切换。
新增的消息版本和相关接口列表:
升级
- 后台消息推送配置 ,勾选
交易消息V3
的你需要的消息事件。对于创建二维码收款的,至少要勾选交易支付
(支付完成会收到该消息, 原PAID
事件)。如果需要等待支付的状态, 需要勾选交易创建
(用户点击支付但未付款状态, 原WAIT_BUYER_PAY
事件)。其他消息可自行根据实际需求进行勾选。 - 同样是在消息推送配置页面,去掉
交易消息
的所有勾选,因为已经勾选了V3的且V1和V2即将废弃,没有接收的必要了。 - 对于之前收到订单支付回调消息再取订单详情拿到
qr_id
的逻辑,可以直接移除掉。qr_id
可以从回调消息中直接获得(测试发现,并不是所有消息中都有该字段,但测试中也同样注意到PAID
事件一定会有该字段),该字段位于回调消息中的msg.qr_info.qr_id
。 - 其实这次升级很简单的,但是一定要测试过再在生产环境跑哟~
有什么问题可以留言交流…
个人开发者要想给自己的产品(网站、APP等)接入支付宝、微信的即时到账接口,是有一定的门槛的,一般是需要公司资质,这也就阻碍了不少个人开发者的兴趣。市面上也有一些第三方聚合支付,但往往费率较高或是信赖度低。本文要介绍的就是一种个人可以接入的基于有赞云的解决方案。
前置条件
注册开发者
只需在 有赞云 进行个人开发者身份注册就可以了。
店铺授权
- 创建可授权店铺: 微商城店铺 或者 有赞微小店 都可以。前者面向商家提供功能完善的线上商城,后者面向个人提供分销商品和自营工具可免费使用;
- 应用授权: 创建完店铺后,再登录到有赞云控制台创建自用型应用并授权刚创建的店铺;
- 设置推送网址: 在有赞云控制台-推送服务 进行推送网址的设置,有赞云会将支付信息推送到这里设定的网址; 至此,完成前置条件,下面是开发相关的。
开发
依赖接口
依赖有赞云的两个接口和消息推送.
简要流程
简单介绍下开发流程/思路。
- 开发者在需要向用户展示收款链接或二维码的时候,调用
创建收款二维码
接口(可创建可多次使用和仅能使用一次等多类型二维码),接口返回二维码信息(唯一id、链接和二维码),开发者需要自行创建用户身份和该二维码之间的关联关系; - 当用户扫码后点击微信支付/支付宝支付,会收到
WAIT_BUYER_PAY
等待支付事件消息,待用户完成支付会收到TRADE_SUCCESS
支付成功事件消息(更多事件消息可点击交易信息推送进行了解); - 开发者收到的交易信息中的
id
可理解为订单号,接着用此id
调用获取单笔交易信息
接口,该接口返回的信息TradeDetail 比较多,我们需要关心的是qr_id
字段,对应到第一步创建的收款二维码的唯一id,开发者即可关联到用户的支付状态并进行后续处理; 至此,了解了开发的流程,下面是一个简单的Demo。
Demo
基于上述分析,开发了一个简单的收款Demo。
前端:HTML5 WebSocket + Vue
后端:PHP + WorkerMan
源码整理后会尽快开源: GitHub
欢迎留言交流~
Other
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3fenbtxppeck4