You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Django应用接收Apple App Store退款通知(refundNotification)及测试方法

问题1:服务器ATS协议配置相关疑问
  • ATS是苹果官方要求的网络传输安全规范,必须使用HTTPS协议,不接受HTTP格式的回调地址。
  • 服务器配置按你用的服务类型选择对应方案即可,核心要求是TLS版本不低于1.2、使用受信任CA颁发的SSL证书、采用苹果认可的加密套件:
    • Nginx配置:在对应站点的server配置块中添加以下内容
      ssl_protocols TLSv1.2 TLSv1.3;
      ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
      ssl_prefer_server_ciphers off;
      
    • Apache配置:在ssl.conf或对应虚拟主机的配置文件中添加以下内容
      SSLProtocol TLSv1.2 TLSv1.3
      SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
      SSLHonorCipherOrder off
      
  • 不需要在Django settings的中间件中配置NSAppTransportSecurity参数,该参数是iOS客户端的Info.plist专属配置项,和服务端逻辑无关,你只需要确保Django接口可以正常处理POST请求、解析Apple返回的JWS格式通知即可。
问题2:无需上架版本验证退款通知接收的方法
  • 方案1:使用沙箱环境触发真实退款通知。你可以用沙箱测试账号完成测试购买后提交沙箱退款申请,退款流程完成后苹果会直接向你在App Store Connect中配置的回调地址发送REFUND通知,不需要等待正式版本上架。
  • 方案2:本地构造模拟请求验证接口逻辑。你可以使用苹果公开的沙箱测试JWS样例,构造POST请求发送到你的测试环境接口,验证解析、业务处理逻辑是否正常,参考请求如下:
    curl -X POST https://你的测试接口地址 \
    -H "Content-Type: application/json" \
    -d '{"signedPayload":"替换为沙箱测试JWS字符串"}'
    
  • 方案3:调用App Store Server API的测试通知接口。你可以调用Request a Test Notification接口,苹果会向你配置的回调地址发送测试通知,你可以通过返回的testNotificationToken查询发送状态,同时在Django服务日志中确认是否正常接收到请求即可。

内容的提问来源于stack exchange,提问作者Othman El-Kurdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:57:03