appStore苹果退款通知_cancellation_date-程序员宅基地

技术标签: apple  appstore  处理苹果退款通知  

现在服务器可以接受苹果退款通知了!!!!

1.从苹果开发者后台配置调用地址url,必须是https的,符合 App Transport Security (ATS)要求,如TLS1.2协议 详情见文档 苹果官方文档
2.解析参数,苹果的请求方式为post,发送json数据
官网截图
所以我们解析这个responseBody就可以了,详细见官方文档
3.响应,苹果不关心返回参数,只关心返回响应码 200 4xx 5xx,如果200代表成功,4xx 5xx苹果会重试
官网截图

重点来了!!!实战解析例子

苹果发送的数据是一个大json,我挑重要的说
下面展示一些 请求json

{
    "environment":"sandbox",  
    "notification_type":"REFUND",
    "password":"aaaaaaaa",
    "bid":"afafsdf.com",
    "unified_receipt":{
        "status":"0",
        "latest_receipt_info": [
            {
                "cancellation_date_ms":"15016625461111",
                "original_transaction_id":"1000000321215919",
                "product_id":"aadfasdfsdfasdf"
            },
            {
                "cancellation_date_ms":"15016625461110",
                "original_transaction_id":"1000000321213686",
                "product_id":"afdsafsdafasdf"
            }
        ]
    }
}

environment: 环境 Sandbox 或 Production
notification_type: 通知类型 REFUND为退款通知
password: 配置的密钥
bid: 应用id
unified_receipt: 咱们要的数据都在这里面
status:0为正常
latest_receipt_info:是一个最大100的数组,里面包含每个通知具体数据
cancellation_date_ms:退款时间毫秒级
original_transaction_id:事物交易订单id
product_id:退款的商品id
更多参数见官方文档

解析这些参数我认为就足够了,这个看自己业务需求,最重要的是通过交易订单id找到相应的自己平台的订单id,记录下来然后再进行业务处理,有需要的可以找到对应用户进行处理。

如果是Java的话定义一个类包括这些属性,在Controller层用 @RequestBody 注解来接收数据就可以了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39222112/article/details/112991265

智能推荐

combiner优化_合路器 combiner csdn-程序员宅基地

文章浏览阅读484次。combiner为何物1. Combiner是MR程序中Mapper和Reduce之外的一种组件2. Combiner组件的父类是Reducer3. Combiner和Reducer之间的区别在于运行的位置,Combiner可以看做局部的Reducer(local reducer)4. Reducer接收全局的MapTask 所输出的结果5. Combiner在MapTask节点中运行..._合路器 combiner csdn

Cloudera Manager 5.15.2离线安装笔记(一)_cdh-5.15.2-1.cdh5.15.2.p0.3-el7.parcel-程序员宅基地

文章浏览阅读1k次。Cloudera Manager 5.15.2离线安装笔记(一)工欲善其事必先利其器,想要学好一门技术首先得有趁手的工具,要想学好大数据技术,还是得有比较好的工具才行。本笔记记录的是安装Cloudera Manager的过程。CDH的全称是Cloudera’s Distribution Including Apache Hadoop,是hadoop众多发行版本中的一种,是由Cloudera维护..._cdh-5.15.2-1.cdh5.15.2.p0.3-el7.parcel

新版Android Studio火烈鸟 在新建项目工程时 无法选java的语言模板解决方法_androidstudio没有java语言选项-程序员宅基地

文章浏览阅读2w次,点赞52次,收藏65次。最近下载最新版androidstudio时 发现不能勾选java语言模板了如果快速点击下一步 新建项目 默认是kotlin语言模板 这可能和google主推kt语言有关。_androidstudio没有java语言选项

如何用java开发一个网站?_java开发网站-程序员宅基地

文章浏览阅读1w次,点赞25次,收藏196次。问题:如何用java开发一个网站?下载了最新的JDK软件、最新的Eclipse、数据库mysql以及tomcat、struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector-java-5.1.44中没有Driver.jar,tomcat配置环境的时候也有问题,tomcat plugin没有和最新的JDK配套的怎么办?看了问题,我建议题主还是好好先学一轮基础的东西。基于问题我简单提几点:Eclipse是开发工具,最新的没问题。JDK其实不需要用最新,现在市面上大多数还是JDK_java开发网站

HDU 3605 Escape(最大流+状态压缩)_acm3605题答案csdn-程序员宅基地

文章浏览阅读338次。题意:现有n个人要移居到m个星球去,给定一个n*m的矩阵,第 i 行第 j 列如果为1,表示第 i 个人可以去第 j 个星球,如果为0,表示不可以去。然后给出这m个星球都最多分别能住多少人,问你n个人是不是都能找到星球住? (1 思路:看到这个n的范围我震惊了...然后不知道怎么做了... 明显的最大流问题,不过n数目太大,直接做肯定超时. 留意到m最多有10个,所_acm3605题答案csdn

Debug调试_r语言0如何进入debug模式-程序员宅基地

文章浏览阅读174次。一.Debug调试先设置断点--》Debug 试图和java试图交换最右边两个,如果debug试图不出现的话可以选择最左边的让他加进去Step over是下一步 红方框是可以停止二.快捷键_r语言0如何进入debug模式

随便推点

Vue.js devtools插件:超实用的浏览器扩展,使项目更容易地调试和优化-程序员宅基地

文章浏览阅读1.2k次,点赞11次,收藏12次。Vue.js devtools插件:超实用的浏览器扩展,使项目更容易地调试和优化_vue.js devtools

基于Matlab使用蒙特卡洛法对机器人运动空间的求解等_matlab运动学之蒙特卡罗法求积分与机器人工作域分析 秦迷天下 2023-12-08 19:-程序员宅基地

文章浏览阅读773次。基于Matlab使用蒙特卡洛法 几何解析法求解机器人运动空间_matlab运动学之蒙特卡罗法求积分与机器人工作域分析 秦迷天下 2023-12-08 19:

spark scala-transformation基础操作_spark scala transform-程序员宅基地

文章浏览阅读269次。本文章主要通过scala实现spark的transformation的常用功能:1 map算子2 flatMap算子3 sortByKey算子4 join算子5 filter算子import org.apache.spark.SparkConfimport org.apache.spark.SparkContext/** * @author jhp */object Transform..._spark scala transform

Harmony OS WiFi编程——连接热点、创建热点-程序员宅基地

文章浏览阅读938次,点赞25次,收藏19次。在Harmony OS上STA模式扫描其他WiFi热点,需要注意以下事项。可以将本仓整体拷贝到openharmony源码树下,和。接口只是触发扫描动作,并不会等到扫描完成才返回;扫描状态监听回调函数内,不能直接调用。拷贝到openharmony源码的。前两章中的方法——将当前目录下的。修改openharmony源码的。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。扫描完成后要及时调用。

python not in string_每周一个 Python 模块 | string-程序员宅基地

文章浏览阅读50次。同时,也欢迎关注我的微信公众号 AlwaysBeta,更多精彩内容等你来。目的:包含用于处理文本的常量和类。string 模块可以追溯到最早的 Python 版本。先前在此模块中实现的许多功能已移至 str 对象方法。string 模块保留了几个有用的常量和类来处理 str 对象。函数 capwords()直接看下面的事例:import strings = 'The quick brown fox..._python not in string

python|简介和运行-程序员宅基地

文章浏览阅读628次,点赞18次,收藏25次。通过控制台的错误提示和错误代码行找问题,报错中有显示多个文件,需要关注的自己的代码文件和错误信息# 定义请求头header = {Win64;q=0.9'pyload = {"id":1,"code":"BJWT","name":"北京万泰","remark":"001","isEnabled":1}try:print('代码没有执行到!')加print调试代码找错误。