iOS IAP内购 VS 支付宝

作者: 亲爱的八路 | 来源:发表于2018-02-02 22:52 被阅读615次

国内支付发达,由支付宝引导的支付流程观念常常会先入为主,导致接入内购时整体观念错位。希望借着对比支付宝和内购流程来让大家更清晰的了解内购流程。

支付宝支付流程:

  1. 用户选择支付
  2. app调用后台接口生成支付信息(生成支付宝订单,并且绑定我们自己的订单号)
  3. app使用支付信息调起支付包sdk
  4. 支付宝sdk请求支付宝服务器
  5. 支付宝服务器返回支付结果给后台和app
  6. app接受到支付宝支付结果,显示相应页面

内购流程

  1. 用户选择支付
  2. app端使用苹果product类请求支付 (生成苹果订单transaction)
  3. store kit向苹果服务器请求
  4. 苹果服务器返回请求结果给app
  5. app保存收据,向后台请求验证收据
  6. 后台返回验证结果

差异点:

  • 支付宝的每个订单都可以绑定我们自己的订单号,但是内购中没有这样的字段
  • 支付宝支付成功后,支付宝服务器通知我们的服务器和app;在内购中,支付成功只通知app

差异点带来的处理区别

  • 我们不能将自己的订单号与苹果的订单号联系起来,只能在支付成功后生成我们自己的订单
  • 在app启动时就需要注册苹果支付回调,以便能接受到不知道什么时候进行的支付的成功结果
  • 保存支付成功的收据,适当的时候需要检查一下有没有未验收的收据

关于applicationUsername和订单号

有人会选择用applicationUsername存放订单号。 这样做的问题是支付成功后transaction中的applicationUsername可能为空
以个人实际经验看,大概每20单就会出现一次applicationUsername没有返回的现象。苹果论坛中关于applicationUsername为空的讨论

关于支付失败

当用户被引导出应用更新他们的支付信息时会出现支付失败/取消,支付信息更新、扣款完成后,app会再次收到成功的回调。苹果论坛关于支付先失败后成功的讨论

关于漏单

理解错误导致漏单列举:

  • app没有在启动的时候就注册支付结果的观察者,导致以前支付成功的订单无法处理
  • 接受到支付成功的结果,但是因为 1.先有了支付失败的回调 2.此次app生命周期中没有付费行为 app拒绝处理成功的订单
  • 用applicationUsername绑定苹果订单系统和我们自己的订单系统,applicationUsername缺失导致无法处理订单

概念理解无误,出现问题可以从流程中的每一步来排查与解决,最怕概念理解错,这样就不是理性分析可以解决的事了。

作者水平有限,发现错误还请不吝赐教

相关文章

  • iOS 内购 IAP

    1. iOS内购IAP(一) —— 基础配置篇(一)2. iOS内购IAP(二) —— 工程实践(一)3. iOS...

  • ios内购IAP相关内容

    ios内购IAP相关内容 iOS IAP应用内购详细步骤和问题总结指南 - 简书https://www.jians...

  • iOS IAP内购 VS 支付宝

    国内支付发达,由支付宝引导的支付流程观念常常会先入为主,导致接入内购时整体观念错位。希望借着对比支付宝和内购流程来...

  • ruby实现ios和google内购

    一、ios 和 google 内购 ios IAP二次验证 IAP(In App purchase):App和Ap...

  • 应用内购(In-App Purchase)常见问题解答

    应用内购(In-App Purchase)常见问题解答iOS的应用内购买 iAP 坑 iOS内购你看我就够了(一)...

  • iAP 的一些简介

    iAP 的小指南 in-App Purchase 内购的缩写为 iAP。是 iOS 自带的一种应用内数字产品的支...

  • ios 经典面试案例 (一)

    1、iOS iAP内购审核可能失败的问题## Guideline 3.1.1 - Business - Payme...

  • Ios内购iap

    最近游戏项目需要上线,需要集成Ios内购 1:首先来谈谈遇到的坑 1)首先我们需要对苹果开发账号里进行配置(这里不...

  • iOS内购(iap)

    通过苹果应用程序商店有三种主要赚钱的方式: 1.直接收费(我想天朝的大多数人是不会购买的)2.广告 iAd Fra...

  • iOS - 内购IAP

    内购 内购的概念 IAP,即in-App Purchase,是一种智能移动终端应用程序付费的模式,在苹果(Appl...

网友评论

  • 拾取灬回忆:applicationUsername为空怎么处理呢?
    亲爱的八路:不应该使用applicationUsername存储重要信息。
    下面给出一定要用的处理建议:为空的话,可以根据内购种类,模糊匹配之前生成的订单,或者直接新生成一个新订单

本文标题:iOS IAP内购 VS 支付宝

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