美文网首页
支付流程

支付流程

作者: 仰望星空_4645 | 来源:发表于2018-05-23 16:36 被阅读0次

    在测试产品过程中最注意的就是支付,因为涉及到金钱,那么你了解支付流程吗?

    1、支付宝支付

      app—------调用支付接口(传递id,金钱,支付类型)

      后台调用第三方,返回回调接口,和交易码、商品名、金额

      app通过sdk调用支付宝,传递商品名、回调地址、交易码、金额

      支付后查看第三方返回的状态是成功还是失败,还是处理中,成功的话调用后台接口获取支付状态

    2、微信支付

      app—------调用支付接口(传递id,金钱,支付类型)

      后台调用第三方,返回预支付id

      app把预支付id提交给微信,再刷新状态接口

    3、银联支付

      app—------调用支付接口(传递id,金钱,支付类型)

      后台调用第三方,返回银联交易号

      app通过sdk 传递银联交易号给银联做支付

    4、ios内购

      1.客户端向Appstore请求购买产品,Appstore验证产品成功后,从客户端的Apple账户中扣费。

      2.Appstore向客户端返回一段receipt-data(票据),里面记录了本次交易的证书和签名信息。

      3.客户端向我们可以信任的服务器(后台)提供receipt-data

      4.服务器对receipt-data进行一次base64编码

      5.把编码后的receipt-data发往itunes.appstore进行验证

      6.itunes.appstore返回验证结果给服务器

      7.服务器对商品购买状态以及商品类型,向客户端发放相应的道具与推送数据更新通知

      漏票原因及解决办法

      出现的两种验证方式:

      IAP built-in Model(本地验证):此种方式跳过来3-7步,在第2步中拿到票据直接向itunes.appstore请求验证票据,根据票据的结果来修改数据。有一些单机游戏因为不涉及后台服务器会采取此种方式,但由此单来的不安全也很明显,比如一些越狱的手机会很容易对此进行一些数据操作。这里暂不做讨论。

      IAP Server Model(服务器验证):如果把数据放在服务器做校验(如实走完1-7的流程),就不用担心客户端出现伪造票据等问题。但是这样还会出现问题。

      想象一下,如果得到票据说明苹果已经扣款成功,就在这时向服务器发送票据验证的时候出现来异常,这个时候可能网络突然断了,未把票据发送的服务器验证,导致明明已经扣了款,却没有收到相应的内购产品,出现了漏单问题。

      一:得到票据,立即保存本地,并向服务器验证

      二:验证成功,删除本地保存数据。若未成功,再次验证重试。

      三:APP重启时,如有本地票据则与服务器进行认证,若认证成功则删除票据。

      四:若以上流程还未能解决漏单问题,则可在APP增加类似找回按钮,依据本地保存票据进行找回(流程三)。

    注:服务器需建立表单记录票据数据,避免多次增加内购产品。

    相关文章

      网友评论

          本文标题:支付流程

          本文链接:https://www.haomeiwen.com/subject/teorjftx.html