• 手机app支付宝支付和苹果支付分析


    首先,明白一点:

    支付宝使用的支付规则没有任何条件限制,苹果支付则不然,需要遵循苹果后台的支付规则限制。如下图列举部分金额规则:

     

     

     

     

     后面的收入是随着汇率随时改变的。

    那么, 我们在做这两种支付集成时,可以让支付宝的支付规则遵循苹果支付的,这样两种支付方式可兼容,因为苹果支付在支付完成时苹果公司就会抽成30%,那么,为了保证app运营平台不受利益损失,可以设置支付价格一样,给用户返还的钻石数不一样,苹果支付可以多赠送用户一些。

    支付宝的支付流程是:

    1:APP请求站点接口,在站点内生成一条充值记录,并保证该记录有唯一的订单编号。

    2:APP获取到站点返回的订单编号,拿着订单编号调起支付宝sdk,完成支付。

    3:支付宝支付成功后,支付宝会按照生成订单编号时的回调地址,把支付成功后的支付信息回调到站点回调地址上

    4:站点回调地址拿到支付宝返回的支付信息后,会使用返回的信息调用支付宝签名算法进行签名验证,验证通过之后,修改站点数据库的订单信息,给用户增加钻石,并返回支付宝后台success告知支付宝整个支付流程完成,如果返回fail的话,支付宝后台会定时向回调地址发送支付结果,直到收到success的反馈信息为止,具体的可以参考支付宝app支付官方文档。

    苹果支付的流程是:

    1:APP请求充值规则接口,拿到充值规则里的product_id

    2:当APP选择一个充值规则时,会得到该充值规则的product_id,存入全局变量。

    同时请求站点接口,在站点内生成一条充值记录,该记录会生成唯一的订单编号orderid并返给APP。

    3:APP携带全局的product_id请求苹果支付sdk,苹果支付会把商品信息返回给APP。

    4:APP界面展示输入苹果账号密码支付,并携带订单编号orderid和商品信息请求站点回调地址。【注意,这两个步骤是异步进行的,但实际上,支付会快一步】

    5:站点回调地址拿到参数后,将参数调用苹果支付的沙盒环境地址【https://sandbox.itunes.apple.com/verifyReceipt】或生产环境地址【https://buy.itunes.apple.com/verifyReceipt】进行参数验证。

    注意:具体调沙盒环境还是生产环境,站点后台可以做个开关,或者根据当前app版本号和上架版本号比较。

    验证通过之后,更改订单状态,给用户增加钻石,并返回{"status":"success","info":"充值支付成功"}告诉iOS手机支付成功。

    6:苹果支付后台同时会通过内部通信告知iOS手机该商品信息支付成功,iOS手机拿到苹果后台的支付信息后,要再次通过通信告知苹果支付该支付流程已经走完,此时,苹果支付后台就不会再通知iOS手机支付信息了,不然的话,苹果支付后台会定时向iOS手机发送商品支付信息通信,来确保该订单支付完成。

    7:iOS手机拿到站点回调地址返回success信息之后,要提示用户充值成功,并刷新当前页面,展示用户最新的钻石数。

    苹果支付的流程写起来有点绕,想直观的理解可以看下面的图:

     这样,大家就明白支付宝支付和苹果支付的区别了吧。

     

  • 相关阅读:
    大道至简的架构设计思想之:封装(C系架构设计法,sishuok)
    LeetCode 89 格雷编码
    windows系统玩游戏找不到d3dx9_35.dll缺失的解决方法
    kali安装volatility及插件mimikatz
    【第317长场力扣周赛】最流行的视频创作者
    Apifox:成熟的测试工具要学会自己写接口文档
    kubernetes资源对象介绍及常用命令
    一文2600字手把手教你编写性能测试用例
    企业云工如何高效居家协同办公?试试这个方法
    【C++】用命名空间避免命名冲突
  • 原文地址:https://blog.csdn.net/salestina/article/details/126381191