Sloppy's Blog

NodeJS验证IOSIAP充值

对于很多前端开发者来说,经常需要自己写一些测试验证程序,当然很多的前端开发者,都会PHP,Java,写个简单的服务器测试程序也很简单。但是苦于有的同学,没有这些经验,也没有这些环境,而NodeJS也是前端开发者必备的环境之一,同时也可以很好的开发服务器程序,当然现在很多成熟的游戏都是基于NodeJS的,前几开在做IOS的内购测试。需要在服务端连接苹果服务器进行验证。写了一个简单的测试程序,记下来。备以后查找

/**
* @brief 跟苹果服务充值服务器进行检验
* @param receiptData IOS充值回调的transaction.transactionReceipt base64Encoding
* @param responder 验证回调
* @param inReview 是否处于审核阶段
*/ 
var verifyReceipt = function(receiptData, responder,inReview){
  var receiptEnvelope = {"receipt-data": receiptData};
  var receiptEnvelopeStr = JSON.stringify(receiptEnvelope);
  var options = {
      host: inReview?'sandbox.itunes.apple.com':'buy.itunes.apple.com',
      port: 443,
      path: '/verifyReceipt',
      method: 'POST',
      headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'Content-Length': Buffer.byteLength(receiptEnvelopeStr)
      }
  };

  var req = https.request(options, function(res) {
      var _data='';
      res.setEncoding('utf8');
      res.on('data', function (chunk) {
          _data += chunk;
      });
      res.on('end', function () {
          console.log("body: " + _data);
          responder(_data);
      });
  });

  req.write(receiptEnvelopeStr);
  req.end();
};

客户端服务端代码参考:下载