实现代码
- function IosPlayVerify(data,orderid,cb) {
- itunesPost(data,function (error,responseData) {
- if (error)
- cb({status:0,ptime:0});
- var purcaseTime = 0;
- var status = 0;
- if(responseData['status'] == 0){
- var inapp = responseData['receipt']['in_app'];
- status = 1;
- purcaseTime = inapp[0]['purchase_date_ms'];
- inapp.some(function (item) {
- if(orderid == item['transaction_id']){
- purcaseTime = item['purchase_date_ms'];
- return true;
- }
- });
- }
- cb({status:status,ptime:purcaseTime});
- });
- }
- function itunesPost(data,cb) {
- let receiptData = {};
- receiptData['receipt-data'] = data;
- let post_data = JSON.stringify(receiptData);
- var options = {
- "method": "POST",
- "hostname": "buy.itunes.apple.com",
- "port": null,
- "path": "/verifyReceipt",
- "headers": {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'Content-Length': post_data.length
- }
- };
- var req = https.request(options, function (res) {
- var chunks = [];
- res.on("data", function (chunk) {
- if (res.statusCode !== 200) {
- return cb("response.statusCode != 200");
- }
- chunks.push(chunk);
- });
- res.on("end", function () {
- var responseData, totalData;
- try {
- totalData = Buffer.concat(chunks);
- totalData = totalData.toString();
- responseData = JSON.parse(totalData);
- } catch (_error) {
- return cb(_error);
- }
- return cb(null,responseData);
- });
- req.on('error', function (exp) {
- return cb('error:' + exp.message);
- });
- });
- req.write(post_data);
- req.end();
- }
调用:
- var tokens = 'MIIVewYJKoZIhvcNpDzg==';
- var orderId = '2700005012' ;
- IosPlayVerify(tokens,orderId,function (responseData) {
- console.log(responseData);
- });
参数: tokens : 为客户端购买时苹果服务器返回的订单信息.
orderId: 为购买的订单 ID.
返回信息: 请求返回的数据 (responseData 参数数据):
- {
- "receipt": {
- "receipt_type": "Production",
- "adam_id": 127345,
- "app_item_id": 12732445,
- "bundle_id": "com.frd.cros",
- "application_version": "62",
- "download_id": 6703453,
- "version_external_identifier": 829054,
- "receipt_creation_date": "2019-03-29 02:03:00 Etc/GMT",
- "receipt_creation_date_ms": "1553820000",
- "receipt_creation_date_pst": "2019-03-28 19:03:00 America/Los_Angeles",
- "request_date": "2019-04-03 07:04:10 Etc/GMT",
- "request_date_ms": "1554275050780",
- "request_date_pst": "2019-04-03 00:04:10 America/Los_Angeles",
- "original_purchase_date": "2017-10-27 19:28:27 Etc/GMT",
- "original_purchase_date_ms": "1509132507000",
- "original_purchase_date_pst": "2017-10-27 12:28:27 America/Los_Angeles",
- "original_application_version": "3",
- "in_app": [
- {
- "quantity": "1",
- "product_id": "com.wordguess.go.in2",
- "transaction_id": "270004425012",
- "original_transaction_id": "270000425012",
- "purchase_date": "2019-03-29 02:02:59 Etc/GMT",
- "purchase_date_ms": "1553879000",
- "purchase_date_pst": "2019-03-28 19:02:59 America/Los_Angeles",
- "original_purchase_date": "2019-03-29 02:02:59 Etc/GMT",
- "original_purchase_date_ms": "1553824979000",
- "original_purchase_date_pst": "2019-03-28 19:02:59 America/Los_Angeles",
- "is_trial_period": "false"
- },
- {
- "quantity": "1",
- "product_id": "com.fil.removeads10",
- "transaction_id": "2700005471",
- "original_transaction_id": "27005471",
- "purchase_date": "2017-11-16 16:44:08 Etc/GMT",
- "purchase_date_ms": "1510850648000",
- "purchase_date_pst": "2017-11-16 08:44:08 America/Los_Angeles",
- "original_purchase_date": "2017-11-16 16:44:08 Etc/GMT",
- "original_purchase_date_ms": "1510850648000",
- "original_purchase_date_pst": "2017-11-16 08:44:08 America/Los_Angeles",
- "is_trial_period": "false"
- }
- ]
- },
- "status": 0,
- "environment": "Production"
- }
来源: http://www.bubuko.com/infodetail-3009902.html