1.验证苹果receipt接口

  • 请求方式 post Content-Type: application/json
  • 测试环境url https://sandbox.itunes.apple.com/verifyReceipt
  • 正式环境url https://buy.itunes.apple.com/verifyReceipt
  • 请求参数:
请求参数 参数类型 是否必须 描述
receipt-data string Base64-encoded receipt data
password string 有订阅商品的时候必须有该参数,共享秘钥
exclude-old-transactions boolean 专门给订阅商品使用
  • 响应参数:
{"environment": "Sandbox", //Sandbox, Production"receipt": {"adam_id": 0,"app_item_id": 0,"application_version": "2.0.6","bundle_id": "com.appstoreMJB.mobao", //包名"download_id": 0,"in_app": [{"is_trial_period": "false","original_purchase_date": "2019-10-25 01:07:14 Etc/GMT","original_purchase_date_ms": "1571965634000","original_transaction_id": "1000000583857816", //原始交易id"product_id": "com.wha.***.6","purchase_date": "2019-10-25 01:07:14 Etc/GMT","purchase_date_ms": "1571965634000","quantity": "1", //购买数量"transaction_id": "1000000583857816" //交易id唯一}],"original_application_version": "1.0","original_purchase_date": "2013-08-01 07:00:00 Etc/GMT","original_purchase_date_ms": "1375340400000","receipt_creation_date": "2019-10-25 01:07:14 Etc/GMT","receipt_creation_date_ms": "1571965634000","receipt_type": "ProductionSandbox","request_date": "2019-10-25 01:07:16 Etc/GMT","request_date_ms": "1571965636457","version_external_identifier": 0},"status": 0 //0成功 其他失败
}
  • 官方文档 https://developer.apple.com/documentation/appstorereceipts/verifyreceipt

2.接收解析v1版本苹果通知(订阅,退款)

基本步骤

  • 1.苹果后台创建订阅商品,创建共享密钥password
  • 2.苹果后台配置通知自己服务器地址url
  • 3.解析苹果通知,开发自己的逻辑(主要编程部分)

1.苹果后台创建订阅商品

苹果后台创建商品列表的上方,就会有创建共享密钥的按钮,只有拥有该权限的人才能看到,重点来了,创建了共享密钥,在验证苹果收据的时候所有的商品都要增加参数,把收据和共享密钥都要发到苹果服务器进行验证,共享密钥作用于所有商品。
进入苹果后台-管理-创建共享密钥,后台地址 https://appstoreconnect.apple.com/apps

2.苹果后台配置通知地址url(v1版本)

苹果所有的通知都会发送到这个url,包括退款,订阅续订,取消订阅等,参数都在请求体里面,数据格式为json格式,使用@RequestBody接收。进入后台-信息-服务器通知地址。参考官方文档 https://help.apple.com/app-store-connect/#/dev0067a330b

3.解析苹果通知(重点)

通知样例如下,详细参数请见官方文档 https://developer.apple.com/documentation/appstoreservernotifications/responsebodyv1

{"environment":"sandbox",       //环境"notification_type":"REFUND",  //通知类型"password":"aaaaaaaa",         //共享秘钥"bid":"afafsdf.com",           //包名"auto_renew_status":"false",   //续期状态"unified_receipt":{            //需要解析的数据"status":"0",              //通知状态,0有效,其他无效"latest_receipt_info": [{"cancellation_date_ms":"15016625461111",       //退款时间毫秒级"cancellation_reason":"1",                     //退款原因"original_transaction_id":"1000000321215919",  //原始交易id"product_id":"aadfasdfsdfasdf",                //商品id"expires_date_ms":"15554554454",               //续订过期时间"transaction_id":"10005877888478"              //交易id},{...}]}
}

notification_type:

INITIAL_BUY : 初次购买(可不解析)
DID_RENEW : 订阅成功自动续订
DID_RECOVER : 自动恢复续订
INTERACTIVE_RENEWAL : 用户手动恢复续订
CANCEL : 取消订阅
REFUND : 退款

4.测试对应的时间段

实践时限 测试时限
1周 3分钟
1个月 5分钟
2个月 10分钟
3个月 15分钟
6个月 30分钟
1年 60分钟

苹果中文文档 https://developer.apple.com/cn/documentation/

服务端接入验证苹果支付receipt相关推荐

  1. 米大师服务端接入坑记录

    米大师服务端接入坑记录 近期因为项目需要接入应用宝的米大师支付,在接入中遇到一些坑,这里记录以下,以便方便需要的朋友参考. 主要是以下几个需要注意的问题: 文档混乱,腾讯应用开放平台和米大师支付等地方 ...

  2. java验证苹果支付收据

    这是一篇文摘性文章. 验证苹果支付的代码 源自 方法一:使用HttpsURLConnection 响应速度比方法二快. public static JSONObject verifyReceipt1( ...

  3. java验证苹果支付收据(转载)

    转自胖哥的整理,地址:http://blog.csdn.net/cnhome/article/details/79380557 苹果说明文档:https://developer.apple.com/l ...

  4. java 服务端使用个推,个推JAVA服务端接入说明

    个推简介 官方文档 个推是商用级的移动应用消息推送云服务解决方案,客户端SDK支持Android和iOS两大平台. 服务端接入步骤 登录个推开发者中心,注册应用,获取AppID.AppKey.Mast ...

  5. java 服务端验证苹果支付applepay账单

    支付流程 前端支付完,付款成功 苹果会返回一个receipt-data,大概长这个样子{"receipt-data" : "MIIaYAYJKoZIhvcNAQcC--& ...

  6. java服务端接入有赞,实现后台登陆有赞商城的需求

    在做手机app时需要接入一个比较完整的商城,自己写没时间的情况下,接入有赞商城,现在记录下来. /*** 有赞基本配置* @author dxt*/ public class YouZanConfig ...

  7. 爱贝云计费服务端接入注意事项

    1. 简介 本主要描述爱贝计费平台服务端为商户提供的API接口,用于指导商户接入并使用计费平台的相关能力,希望有所帮助. 2. 爱贝云计费API接口列表简介 Ø登录令牌认证:商户使用计费平台账号作为用 ...

  8. iOS连续订阅IAP自动续订服务端接入流程

    业务逻辑 注意: 同一Apple 账号生成续订订单的原始交易ID(original_transaction_id)一致 服务端处理交易过程 :要确定一个交易ID(transaction_id)只能完成 ...

  9. 苹果内购验证(熟称苹果支付回调)java版

    简介: 苹果支付是直接由ios客户端调起苹果支付并支付完成后,java后台提供一个支付回调接口供ios客户端进行同步回调,只需要在该接口进行进行验证苹果支付是否支付成功,跟微信支付和支付宝支付不一样, ...

  10. 苹果支付成功后,JAVA服务端二次验证

    原理简述: 苹果客户端在完成应用购买,下单后支付,苹果后台会给客户端返回信息,用来验证支付结果: 客户端在拿到返回值后,将指定返回值,通过接口形式请求应用服务器,应用服务器根据这个值调用苹果服务器进行 ...

最新文章

  1. 120000字,你们要的Java 并发编程图文小册整理出来了,免费送给大家!
  2. python多进程优化_『Python』多进程处理
  3. Linux下Shell脚本实战之监测磁盘空间
  4. 十三、IntelliJ IDEA 中的版本控制介绍(下)
  5. ANNOTATION PROCESSING 101 by Hannes Dorfmann — 10 Jan 2015
  6. php radio样式美化,微信小程序修改radio组件默认样式
  7. Android——SMS接收发短信与运行权限
  8. opencv图像处理8-卷积
  9. fpv freerider穿越机模拟器怎么和HTC Vive vr 设备连接配置
  10. 《OpenDRIVE1.6规格文档》1
  11. office文档图标显示不正常
  12. 英语基础语法(五)-形容词、副词
  13. 数据库安全-数据库习题
  14. Adyen海外支付 - 直付
  15. 闲云野鹤:吃鸡(四)之场景制作—用unity内置草功能制作草
  16. 七周成为数据分析师 | 数据分析思维
  17. Random中的随机数的产生机制
  18. GPU在AI业务中的核心技术与应用
  19. 滚动轴承退化趋势预测
  20. 谷歌浏览器手势操作_[经验分享] 2步操作永久提升谷歌Chrome浏览器默认下载速度...

热门文章

  1. linux gbk 语言包安装,linux 安装gbk字符集
  2. mysql设置字符集gb2312_mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别...
  3. 六、容器(高琪java300集+java从入门到精通笔记)
  4. 2022-06-28 工作记录--React-swiper + react-intersection-observer 实现图片在可视范围内时加上其对应动图
  5. w10运行游戏计算机中丢失xinput1-3.dll,Win10系统提示丢失xinput13dll的解决方法
  6. 计算机缓存设置方法,电脑缓存设置步骤介绍
  7. 网页打印计算机死机,调用网络打印就死机
  8. 数字人民币的基础:共识与信任
  9. dub报invalid semver
  10. 方程组变换+初等变换+矩阵等价+克莱姆法则