支付
一、使用场景
App帐号打通实现之后,支付变现是非常重要的场景。核心能力:支付。 SDK可以支持App无需开发任何支付功能,直接使用SDK自带的微信支付进行支付。
(资金去向:如果您在小鹅通后台绑定了微信支付商户号,钱将直接到您的微信支付商户号里。)
可实现:
1、APP用户在小鹅通支付的订单信息,可 关联用户订单到App帐号。(通过订单异步推送可以实时获得)
2、APP用户可以通过app自有的支付方式,完成对小鹅通店铺内课程的购买,无需跳转即可学习和观看直播。(sdk做为交付场所,打通课程权益)
3、APP用户支持的支付方式:微信支付、ios代币支付和app自带支付方式
二、支付方式——微信支付
技术说明:小鹅通实现SDK中微信支付的原理是使用了微信支付中的H5支付,所以并不需要账号上给到openid,也可以进行支付。
注:iOS应用在支付上如果虚拟商品(课程)直接使用微信支付,会有拒审和下架风险,建议选择下面iOS代币支付方案。操作如下:三、支付方式——iOS代币支付
必要知识:代币指的的是App生态中的虚拟币(如喜币、得到贝等),目前iOS虚拟商品的支付上(IAP)苹果必须收取30%的“苹果税”,而苹果收取前提是需要将商品在苹果开发者平台上创建好,对于商品众多的业务场景中,无法做到。
实现方式:
所以业内(常规操作)是将商品弄成9.9、19.9、88、388不等的充值金额,类似充值卡。提前在苹果开发者平台创建好这类“商品”,供iOS用户充值支付,苹果再从这几种“商品”中进行抽成。
流程图
技术说明:当iOS的SDK配置开启代币支付后,H5在发起确认订单请求时,不会直接拉起微信支付,而是会通过SDK通知App支付信息(订单号、商品名、商品ID、规格、数量、金额等),App可跳转或拉起自己的代币扣款收银台,进行代币扣减(支付),扣减(支付)过程中App服务端向小鹅通服务器【小鹅通支付结果回调API】发起请求,告知该订单号支付成功,小鹅通服务器随即将订单状态改为已支付,课程权益同时开通。
交互图
相关接口:
1.小鹅通支付结果回调API
url:https://pay.xiaoe-tech.com/pay/merchant/payCallback
method:POST
content-type:application/json
{
"sign": "5b94924ae2aa36dfb7b024839b363754", //sign签名
"timestamp": "1634550379",//时间戳(秒)
"app_id": "apphgnhaunj1360", //店铺ID
"out_trade_no": "oo_5ac1dd24803ae_GtfAOxiS1", //小鹅通系统订单号
"transaction_id": "order_12345678", //App侧订单号或交易流水号
"nonce": "abcdef" //随机字符串
}
2.App侧支付结果查询接口(用于小鹅通主动查询订单状态校验核准)
url:需要商家的App后台提供
method:POST
content-type:application/json
//请求示例
{
"sign": "5b94924ae2aa36dfb7b024839b363754",
"timestamp": "1634550379",
"out_trade_no": "oo_5ac1dd24803ae_GtfAOxiS1",
"transaction_id": "42000000682018040207188274111",
"nonce": "abcdef"
}
//返回示例
{
"code": 0, // 0 访问成功 1 系统错误 2 签名错误 3 参数错误 4 查无此单
"msg": "ok",
"data": {
"order_state": 'UNPAID',
// UNPAID 未支付 FAILED 付款失败 DELETED 已删除 PAID 已付款 REFUND 已退款 CLOSED 已关闭
"out_trade_id": 'oo_6247cdccddbc5_9xPY0N4g', //小鹅订单号
"transaction_id": '2022040222001406041408616653' //交易号
}
}
四、支付方式——自有支付
适用场景:App中本身就有完善的支付功能,包括可以微信支付、支付宝、云闪付、银联等等,在App中售卖小鹅通的课程,能够使用App中的支付。支付后,能够在小鹅通中看到相对应权益的课。
实现方式:
- 首先将在小鹅通的课程通过OpenAPI同步商品到App后台,可以将课程封面,课程标题、课程ID等关键信息拿到,点击查看接口详情 (该案例商家故意将课程在小鹅通的价格设置的特别高,防止用户在H5购买,希望都在App上购买)
- 将课程信息通过App原生的开发展示在App中售卖
- 当走完App支付流程后,App服务端需要将该App用户对应的小鹅通用户(user_id)开通课程权益,调用开通权益接口,重要参数如课程ID,小鹅通用户ID等信息。
- 支付完成后此时App可引导进入小鹅通SDK的H5中,用户即可获得课程权益,并且观看学习课程。
缺点:App具有一定的开发工作量。