メモです。表題の通り。
利用される値
-
license_key
ディベロッパーコンソール > アプリ > サービスとAPI の「バイナリに追加する Base64 エンコードの RSA 公開鍵です。スペースはすべて削除してください。」の下にある文字列 -
purchase_data
購入時のIntentからINAPP_PURCHASE_DATA
で取り出せる値 -
signature
購入時のIntentからINAPP_DATA_SIGNATURE
で取り出せる値
検証コード
def verify(data, sign)
verifier.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(sign), data)
end
def verifier
@_verifier ||= OpenSSL::PKey::RSA.new(Base64.decode64(license_key))
end
if ! verify(purchase_data, signature)
raise 'データが改ざんされています'
end