iOS从入门到精通 ∷ 工作篇猿人旅程

Ping++和BeeCloud的比较

2016-09-14  本文已影响3061人  eriolchan

第三方支付集成服务

随着越来越多的移动应用需要集成支付功能,相比于直接与每个支付渠道对接,一些公司提供了第三方支付集成服务,以统一的接口帮助开发者快速地集成多种不同的支付方式,并提供了稳定可靠的云服务和数据管理平台。这里将对其中两个主流的产品进行比较分析。

优势

风险

Ping++ vs. BeeCloud

Ping++ BeeCloud
服务功能 支付系统
支付渠道申请(15天内)
管理平台
支付系统
支付渠道申请
管理平台
支付渠道 支付宝
微信
银联
Visa/MasterCardMasterCard
支付宝
微信
银联
Visa/MasterCardMasterCard
PayPal
支付方式 手机app(iOS/Android/H5)
PC 网页
QR 扫码
手机app(iOS/Android/H5)
PC 网页
QR 扫码
支付场景 支付
查询
退款
红包
企业付款
账户系统(余额、优惠券)
分期支付
支付
查询
退款
红包
企业付款
订阅支付(定时自动扣款)
秒支付button
接入开发 SDK(Client & Server)
提供Test 和Live 模式
https://github.com/PingPlusPlus
SDK
提供Live 和Sandbox模式
https://github.com/beecloud

集成Ping++

  1. 分别下载服务端SDK 和客户端SDK。
  2. 安装部署服务端SDK,使用服务端SDK 请求交易对象。
  3. 安装部署客户端SDK,并请求你的服务端拿到交易对象,调用客户端SDK 完成支付(此步骤仅限支付交易)。
  4. 配置服务端Webhooks,接收交易结果的事件通知。
  5. 根据具体场景,在指定时间没有获取Webhooks 通知的前提下,通过查询接口获取交易结果。

注意:以上步骤适用于Test 和Live 两种模式。

BeeCloud 移动端支付流程
  1. App 端发送订单信息。做完这一步之后就会跳到相应的支付页面(如微信app 中),让用户继续后续的支付步骤。
  2. App 端处理同步回调结果。付款完成或取消之后,会回到客户app 中,在页面中展示支付结果(比如弹出框告诉用户“支付成功”或“支付失败”)。同步回调结果只作为界面展示的依据,不能作为订单的最终支付结果,最终支付结果应以异步回调为准。
  3. 客户服务端处理异步回调结果(Webhook)。付款完成之后,根据客户在BeeCloud 后台的设置,BeeCloud 会向客户服务端发送一个Webhook 请求,里面包括了数字签名,订单号,订单金额等一系列信息。客户需要在服务端依据规则要验证数字签名是否正确,购买的产品与订单金额是否匹配,这两个验证缺一不可。验证结束后即可开始走支付完成后的逻辑。
BeeCloud 网页端支付流程
  1. 网页服务器端发送订单信息。
  2. 收到BeeCloud 返回的渠道支付地址(比如支付宝的收银台)
    • 微信扫码返回的内容不是和支付宝一样的一个有二维码的页面,而是直接给出了微信的二维码的内容,需要用户自己将微信二维码输出成二维码的图片展示出来。
  3. 将支付地址展示给用户进行支付。
  4. 用户支付完成后通过一开始发送的订单信息中的return_url 来返回商户页面。
    • 微信没有自己的页面,二维码展示在商户自己的页面上,所以没有return_url 的概念,需要商户自行使用一些方法去完成这个支付完成后的跳转(比如后台轮询查支付结果)
    • 此时商户的网页需要做相应界面展示的更新(比如告诉用户“支付成功”或“支付失败”)。不允许使用同步回调的结果来作为最终的支付结果,因为同步回调有极大的可能性出现丢失的情况(即用户支付完没有执行return_url,直接关掉了网站等等),最终支付结果应以下面的异步回调为准。
  5. 商户后端服务端处理异步回调结果(Webhook)。付款完成之后,根据客户在BeeCloud 后台的设置,BeeCloud 会向客户服务端发送一个Webhook 请求,里面包括了数字签名,订单号,订单金额等一系列信息。客户需要在服务端依据规则要验证数字签名是否正确,购买的产品与订单金额是否匹配,这两个验证缺一不可。验证结束后即可开始走支付完成后的逻辑。

参考

使用第三方支付集成有何风险 - 梁川的回答
Ping++, BeeCloud 这类集合支付服务产品的商业模式盈利模式是什么 - 陈龙的回答

上一篇下一篇

猜你喜欢

热点阅读