經過幾天的努力,努力獲得某些東西來工作並且沒有獲得任何地方,我想知道是否有人在Node.js上獲得了iOS Receipt Validation。我試過節點模塊iap_verifier發現here,但我無法讓它爲我正常工作。我從蘋果服務器收到的唯一回復是21002,數據格式不正確。用Node.js驗證iOS收據
有一件事情對我來說是一個蘋果服務器的客戶端驗證請求,我直接從Apple here提供的教程中獲取,代碼如下所示。
// The transaction looks ok, so start the verify process.
// Encode the receiptData for the itms receipt verification POST request.
NSString *jsonObjectString = [self encodeBase64:(uint8_t *)transaction.transactionReceipt.bytes
length:transaction.transactionReceipt.length];
// Create the POST request payload.
NSString *payload = [NSString stringWithFormat:@"{\"receipt-data\" : \"%@\", \"password\" : \"%@\"}",
jsonObjectString, ITC_CONTENT_PROVIDER_SHARED_SECRET];
NSData *payloadData = [payload dataUsingEncoding:NSUTF8StringEncoding];
// Use ITMS_SANDBOX_VERIFY_RECEIPT_URL while testing against the sandbox.
NSString *serverURL = ITMS_SANDBOX_VERIFY_RECEIPT_URL;
// Create the POST request to the server.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:serverURL]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:payloadData];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[conn start];
我有一堆不同的代碼,我一直在使用它來發送各種各樣的東西到我的節點服務器。而我所有的不同嘗試都失敗了。我甚至嘗試過漏斗的「payloadData」我構建了在客戶端驗證上面的例子到我的服務器併發送,爲蘋果服務器用下面的代碼:
function verifyReceipt(receiptData, responder)
{
var options = {
host: 'sandbox.itunes.apple.com',
port: 443,
path: '/verifyReceipt',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(receiptData)
}
};
var req = https.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log("body: " + chunk);
});
});
req.write(receiptData);
req.end();
}
當函數傳遞payloadData。從蘋果收到的迴應總是21002年。我仍然基本上是一個節點新手,所以我無法弄清楚究竟發生了什麼問題。我認爲當我將數據從ObjC發送到我的節點服務器時,可能會發生一些數據損壞情況,所以也許我沒有正確傳輸數據。
如果有人能指出我的方向是正確的,或者提供一些他們如何獲得收據驗證以便在節點中工作的例子,那將是一個很大的幫助。如果有人對iap_verifier模塊有任何經驗,以及它需要什麼數據,那將是非常棒的。我將提供我需要的任何代碼示例,因爲我現在已經爲這個過程奮戰了幾天。
謝謝!
如果你有工作一個地方,爲什麼不記錄網絡流量和然後重複發生的事情? – WiredPrairie
你有沒有得到這個工作!?如果是的話,你可以分享.. – Learn2Code