Проверьте получение iOS с помощью Node.jsIOS

Программируем под IOS
Ответить
Anonymous
 Проверьте получение iOS с помощью Node.js

Сообщение Anonymous »

После нескольких дней попыток заставить что-то работать, но ничего не добившись, мне стало интересно, удалось ли кому-нибудь заставить систему проверки квитанций iOS работать на Node.js. Я попробовал найденный здесь модуль узла iap_verifier, но мне не удалось заставить его работать должным образом. единственный ответ, который я получил от серверов Apple, — 21002, данные были искажены.

Одна вещь, которая сработала для меня, - это запрос проверки на стороне клиента к серверам Apple, который я получил прямо из учебных пособий, предоставленных Apple, с кодом, показанным ниже.

Код: Выделить всё

// 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», которые я создал в приведенном выше примере проверки на стороне клиента, на свой сервер и отправить их на серверы Apple с помощью следующего кода:

Код: Выделить всё

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. Ответ, полученный от Apple, всегда равен 21002. Я все еще новичок в узлах, поэтому не могу понять, что именно происходит не так. Я думаю, что, когда я отправляю данные из ObjC на свой Node-сервер, может произойти некоторое повреждение данных, поэтому, возможно, я передаю неправильно.

Если кто-нибудь может указать мне правильное направление или привести пример того, как они получили проверку квитанции для работы в узле, это было бы для них большой помощью. Было бы здорово, если бы кто-нибудь имел опыт работы с модулем iap_verifier и какие именно данные ему требуются. Я предоставлю любой пример кода, который мне понадобится, поскольку я борюсь с этим процессом уже несколько дней.

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/196 ... th-node-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»