若 App 的架構具有後端伺服器,則 IAB 回傳的結果應該由伺服器端來做驗證,底下是以 NodeJS 為例子的驗證程序 :
var crypto =require('crypto'); var verifySignature =function(publicKey, purchaseData, signature) { var genPublicKey =function(key) { var chunkSize, chunks, str; str = key; chunks = []; chunkSize = 64; while (str) { if (str.length < chunkSize) { chunks.push(str); break; } else { chunks.push(str.substr(0, chunkSize)); str = str.substr(chunkSize); } } str = chunks.join("\n"); str = '-----BEGIN PUBLIC KEY-----\n' + str + '\n-----END PUBLIC KEY-----'; return str; } return crypto.createVerify('RSA-SHA1').update(purchaseData).verify(genPublicKey(publicKey), signature, 'base64'); }
回傳若為 true 則資料正確。
參考來源 : https://github.com/nothing2lose/node-InAppBilling
0 意見 :
張貼留言