InAppPurchase前往AppStore支付校验-Python后端开发记录


Python 版本是 3.5.2 ,后端架构是 Django == 1.11.1 和 MySQL 。

非自动订阅式购买

首先理流程

  • iOS 端发起支付请求
  • 支付成功后,携校验所需数据向服务端发起校验请求
  • 服务端将参数进行包装,向 AppStore 发起校验请求
  • AppStore 返回响应,包含着用户在 App 中所有交易的收据
  • 服务端解析响应,用 iOS 传来的数据与 AppStore 返回的数据进行比对,数据一致即为校验成功
  • 校验完成后,服务端走业务逻辑,给 iOS 端返回响应

校验所需的参数

  • receiptData:base64 编码的收据信息 - 请求 AppStore 的主数据
  • transactionId:交易单号 - 与 AppStore 返回的数据进行比对的键
  • productId:购买的产品标识 - 与 AppStore 返回的数据进行比对的值

请求 AppStore

  • 服务端准备参数 {'receipt-data': receiptData, 'password': 'xxxxxxxxxxxx'},password 为非自动订阅式购买必传
  • post 请求至 https://buy.itunes.apple.com/verifyReceipt/ (沙盒环境:https://sandbox.itunes.apple.com/verifyReceipt/)

解析响应

响应示例:

{
	'receipt': 
		{
			'receipt_creation_date_ms': '1562909318000', 
			'adam_id': 0, 
			'receipt_creation_date': '2019-07-12 05:28:38 Etc/GMT', 
			'version_external_identifier': 0,
			'original_purchase_date_pst': '2013-08-01 00:00:00  America/Los_Angeles', 
			'original_purchase_date_ms': '1375340400000',
			'bundle_id': 'xxxxxxx', 
			'receipt_creation_date_pst': '2019-07-11 22:28:38 America/Los_Angeles', 			
			'request_datea_ms': '1562909325495', 
			'app_item_id': 0, 
			'original_purchase_date': '2013-08-01 07:00:00 Etc/GMT', 
			'request_date_pst': '2019-07-11 22:28:45 America/Los_Angeles', 
			'original_application_version': '1.0', 
			'application_version': '1', 
			'receipt_type': 'ProductionSandbox', 
			'download_id': 0, 
			'request_date': '2019-07-12 05:28:45 Etc/GMT', 
			'in_app': [
				{
					'is_trial_period': 'false', 
					'original_purchase_date_ms': '1562908866000', 
					'quantity': '1', 
					'purchase
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值