LightSDK.native.iapPurchase

功能描述

通过JS调起苹果内购接口(只适用于iOS)。

支持格式

Json

请求参数:

字段 可选 类型及范围 说明
apple_product_id string 苹果商品ID(需要在苹果itunes connect平台创建商品)
orderId string 商户订单号(此订单号为客户自己业务生成的订单号,用于最后一步校验苹果收据时做检测唯一性使用,保证内购链路完整性)

请求调用示例

params={
"orderId":"20180727160544",
"apple_product_id":"com.hundsun.light.lightview.appstore_vip"
};
LightSDK.native.iapPurchase(params,cb);

返回值说明

字段名 字段类型 说明
status int 表示苹果内购完成后的状态 (0:成功 1:交易失败 2:取消交易)
transactionReceipt string 苹果内购完成后返回的收据(只在status为0的情况下才有返回该字段)
orderId string 商户订单号

返回字段示例

"data":{
"transactionReceipt":"xxxx",
"status":0,
"orderId":"20180727160544"
}

注意事项

1.自己测试的时候使用的是沙盒购买(测试环境),App Store审核的时候也使用的是沙盒购买(测试环境),上线以后就不是用的沙盒购买了(正式环境),所以后端服务器此时拿到收据后应该先向苹果的正式服务器验证收据,再向苹果的沙箱服务器验证收据。

2.因为苹果内购成功后,钱已经被扣掉了,到了服务器向苹果校验收据的这一步时,由于一些不可控的问题 如网络异常等,建议前端页面增加重试校验苹果收据的保护措施,以免掉单问题。

3.因为苹果内购功能需要使用的证书是appstore证书,导致苹果内购测试只能在testflight平台上测试或者开发者真机调试或越狱设备下进行测试。

4.根据苹果要求,用户在使用IAP内购功能时,不能要求强制用户去登录注册,应该让用户以“游客”的身份去购买,若不支持该功能的话,appstore审核会被直接打回,所以后端需支持游客模式登录 (方案:根据设备号生成一个游客账号)。