Springboot 对接苹果内购代码
苹果内购和微信、支付宝支付流程有所不同,微信和支付宝都是通过各自的统一下单接口,拿到客户端所要的参数,之后返回给客户端,客户端支付完成进行回调并进行业务操作,而苹果内购是客户端直接支付完成之后通过客户端传过来的交易凭证(base64字符串),进行服务端苹果内购校验并进行业务操作。
苹果官方地址 地址
1. 拿到的数据大概是这样的
{
"receipt":{
"receipt_type":"ProductionSandbox",
"adam_id":0,
"app_item_id":0,
"bundle_id":"com.xgdream.app",
"application_version":"1",
"download_id":0,
"version_external_identifier":0,
"receipt_creation_date":"2019-11-10 13:45:48 Etc/GMT",
"receipt_creation_date_ms":"1573393548000",
"receipt_creation_date_pst":"2019-11-10 05:45:48 America/Los_Angeles",
"request_date":"2019-11-10 13:46:00 Etc/GMT",
"request_date_ms":"1573393560952",
"request_date_pst":"2019-11-10 05:46:00 America/Los_Angeles",
"original_purchase_date":"2013-08-01 07:00:00 Etc/GMT",
"original_purchase_date_ms":"1375340400000",
"original_purchase_date_pst":"2013-08-01 00:00:00 America/Los_Angeles",
"original_application_version":"1.0",
"in_app":[
{
"quantity":"1",
"product_id":"**********",
"transaction_id":"1000000590300432",
"original_transaction_id":"1000000590300432",
"purchase_date":"2019-11-10 13:45:48 Etc/GMT",
"purchase_date_ms":"1573393548000",
"purchase_date_pst":"2019-11-10 05:45:48 America/Los_Angeles",
"original_purchase_date":"2019-11-10 13:45:48 Etc/GMT",
"original_purchase_date_ms":"1573393548000",
"original_purchase_date_pst":"2019-11-10 05:45:48 America/Los_Angeles",
"is_trial_period":"false"
}
]
},
"status":0,
"environment":"Sandbox"
}
2. 苹果内购流程图

3. 以下就是代码了
@ApiOperation("ios支付成功后验证结果")
@PostMapping("/iospay")
public synchronized ResponseEntity<JsonResult> iosPay(