苹果支付
苹果支付
注:苹果支付和微信支付、支付宝支付流程不同,微信支付、支付宝支付需调用各自统一下单接口,再将得到的参数值返回给前端。苹果支付只是在后台生成订单(订单信息需包含订单编号,金额等),将订单返回给IOS客户端,客户端直接支付,再由客户端调后台接口处理支付完的业务逻辑,并不是由苹果公司来回调
前端从苹果拿到的数据大概是这样的
{
"status": 0,
"environment": "Production",
"receipt": {
"receipt_type": "Production",
"adam_id": 2341443613,
"app_item_id": 2234443613,
"bundle_id": "com.xxxxx.xxxxx",
"application_version": "1",
"download_id": 23456572706673,
"version_external_ident ifier": 821223402,
"receipt_creation_date": "2017-01-25 00:52:37 Etc/GMT",
"receipt_creation_date_ms": "3333897657000",
"receipt_creation_date_pst": "2017-01-25 17:57:37 America/Los_Angeles",
"request_date": "2017-01-26 00:57:38 Etc/GMT",
"request_date_ms": "1445897657000",
"request_date_pst": "2017-05-29 17:57:38 America/Los_Angeles",
"original_purchase_date": "2016-01-25 15:37:18 Etc/GMT",
"original_purchase_ date_ms": "145234568000",
"original_purchase_date_pst": "2016-01-25 07:37:18 America/Los_Angeles",
"original_application_version": "12",
"in_app": [
{
"quantity": "1",
"product_id": "xxxxxxxxx",
"transaction_id": "110000290198443",
"original_transaction_id": "110000290198443",
"purchase_date": "2017-01-26 00:23:36 Etc/GMT",
"purchase_date_ms": "1496105856000",
"purchase_date_pst": "2017-01-26 00:35:30 America/Los_Angeles",
"original_purchase_date": "2017-01-26 00:57:36 Etc/GMT",
"original_purchase_date_ms": "14347896000",
"original_purchase_date_pst": "2017-01-25 17:57:36 America/Los_Angeles",
"is_trial_period": "false"
}
]
}
}
后台生成订单
此处不贴代码,每个人的订单不一样
回调
/**
* 苹果支付回调(APP调用,不是苹果官方回调)
* @param transactionId
* @param payload
* @return
* @throws Exception
*/
@RequestMapping(value="/applepay/order/notifyCallBack")
@ResponseBody
public AppResponse<Object> applepayOrderNotifyCallBack(String transactionId, String payload) {
AppResponse<Object> appResponse = new AppResponse<>(