ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 支付 ## 一、使用场景 **App帐号打通实现之后,支付变现是非常重要的场景。核心能力:支付。** <font color='red'> **SDK可以支持App无需开发任何支付功能,直接使用SDK自带的微信支付进行支付。** </font> (资金去向:如果您在小鹅通后台绑定了微信支付商户号,钱将直接到您的微信支付商户号里。) **可实现:** 1、APP用户在小鹅通支付的订单信息,可 <font color='red' >**关联用户订单到App帐号**</font>。(通过[订单异步推送](https://api-doc.xiaoe-tech.com/api_list/news_push/order_push.html)可以实时获得) 2、APP用户可以<font color='red' >**通过app自有的支付方式**</font>,完成对小鹅通店铺内课程的购买,无需跳转即可学习和观看直播。(sdk做为交付场所,打通课程权益) 3、<font style='background:yellow'>**APP用户支持的支付方式:微信支付、ios代币支付和app自带支付方式**</font> ## 二、支付方式——微信支付 SDK提供了一套完整的微信支付闭环,节省开发成本。 ![](https://img.kancloud.cn/8d/2e/8d2e36366dec4e97073dbbd4247e8f85_1801x1231.png) **技术说明**:小鹅通实现SDK中微信支付的**原理是**<font style='background:yellow'>**使用了微信支付中的H5支付**</font>**,所以并**<font style='background:yellow'>**不需要账号上给到openid,也可以进行支付。**</font> [点击查看](https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_6_0.shtml) <font color='red'>注:iOS</font>应用在支付上如果<font color='red'>虚拟商品(课程)直接使用微信支付,会有拒审和下架风险,建议选择下面iOS代币支付方案。操作如下:</font> ## 三、支付方式——iOS代币支付 必要知识:<font color='red'>代币指的的是App生态中的虚拟币(如喜币、得到贝等)</font>,目前iOS虚拟商品的支付上(IAP)<font color='red'>苹果必须收取30%的“苹果税”</font>,而苹果收取前提是需要将商品在苹果开发者平台上创建好,对于商品众多的业务场景中,无法做到。 实现方式: 所以业内<font style='background:yellow'>**(常规操作)是将商品弄成9.9、19.9、88、388不等的充值金额,类似充值卡。提前在苹果开发者平台创建好这类“商品”,供iOS用户充值支付,苹果再从这几种“商品”中进行抽成。**</font> #### 流程图 ![](https://img.kancloud.cn/5d/09/5d095df4dd3ebd316014475e59fb0d4e_2385x479.png) 技术说明:当iOS的SDK配置开启代币支付后,H5在发起确认订单请求时,不会直接拉起微信支付,而是<font color='red'>会通过SDK通知App支付信息</font>(订单号、商品名、商品ID、规格、数量、金额等),<font color='red'>App可跳转或拉起自己的代币扣款收银台,进行代币扣减(支付)</font>,扣减(支付)过程中<font color='red'>App服务端向小鹅通服务器</font>【小鹅通支付结果回调API】<font color='red'>发起请求</font>,告知该订单号支付成功,小鹅通服务器随即将订单状态改为已支付,<font color='red'>课程权益同时开通</font>。 #### 交互图 ![](https://img.kancloud.cn/00/4e/004e6e8a9ee7170be5592497288f08cc_1879x745.png) 相关接口: [代币支付签名算法](./../algorithm.md) 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:**<font color='red'>需要商家的App后台提供</font>** 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中本身就有完善的支付功能,包括<font style='background:yellow'>可以微信支付、支付宝、云闪付、银联</font>等等,<font style='background:yellow'>在App中售卖小鹅通的课程</font>,能够使用App中的支付。<font style='background:yellow'>支付后</font>,能够在<font style='background:yellow'>小鹅通中看到相对应权益的课。</font> 案例: ![](https://img.kancloud.cn/6b/8f/6b8fa3b8da6bec45be4d0e6881b6da59_1819x1272.png) 实现方式: 1. 首先将在小鹅通的课程通过<font color='red'>OpenAPI同步商品到App后台<font>,可以将课程封面,课程标题、课程ID等关键信息拿到,[点击查看接口详情](https://api-doc.xiaoe-tech.com/api_list/product/get_goods_relations_2.html) (该案例商家故意将课程在小鹅通的价格设置的特别高,防止用户在H5购买,希望都在App上购买) ![](https://img.kancloud.cn/b1/5c/b15ccb497528fa20937c2caeebdd74d3_1790x626.png) 3. <font color='red'>将课程信息通过App原生的开发展示在App中售卖</font> ![](https://img.kancloud.cn/27/0f/270f6b1bf1c09df2259be908c2b8b291_566x762.png) 4. 当走完App支付流程后,App服务端需要将该App用户对应的<font color='red'>小鹅通用户(user\_id)开通课程权益</font>,[调用开通权益接口](https://api-doc.xiaoe-tech.com/api_list/start_class/xe_order_delivery.html),重要参数如课程ID,小鹅通用户ID等信息。 5. 支付完成后此时App可引导进入小鹅通SDK的H5中,<font color='red'>用户即可获得课程权益</font>,并且观看学习课程。 <font style='background:yellow' color='red'>优点:</font>App内全闭环,适合App支付功能相对完善,并且支付后有各种特殊续期逻辑的情况,因为支付流程完全在App自己掌握,<font style='background:yellow' color='red'>最终调用一个API通知小鹅通给用户开通课程权益即可。</font> 缺点:App具有一定的开发工作量。