use*_*255 10 php android openssl signature in-app-purchase
尝试在此处遵循应用内购买的一些安全准则:http: //developer.android.com/guide/market/billing/billing_best_practices.html 我尝试在服务器而不是在服务器上进行签名验证app iteself.我理想情况下喜欢使用php openssl库,它看起来像以下代码应该工作:
$public_key_str = file_get_contents("./pubKey/out");
$public_key_str = trim($public_key_str);
$key = openssl_get_publickey($public_key_str);
if(!$key)
{
echo 'Can\'t get public key';
}
$signature = base64_decode( $signature );
$ok = openssl_verify($data, $signature, $key);
var_dump($ok);
Run Code Online (Sandbox Code Playgroud)
我知道我的签名和公钥都是正确的,但$ ok是0!签名我尝试使用来自应用程序购买包的字符串.猜猜我的钥匙是正确的,问题是签名.当我尝试使用以下命令从base64解码它时:openssl enc -base64 -d -in signature -A> signature.bin,我的字符串与base64_decode()相同.有任何想法吗 ?
UPD:我也不知道我应该在openssl_verify()中传递什么作为$ data?我的数据如下:
$data = '{"nonce":5550262978898439313,"orders":[{"notificationId":"android.test.purchased","orderId":"transactionId.android.test.purchased","packageName":"com.ads.testbilling","productId":"android.test.purchased","purchaseTime":1308224646237,"purchaseState":0}]}';
Run Code Online (Sandbox Code Playgroud)
小智 1
看看 OAuth.php 我想你可以在 googlecode.com 上得到它 它使用 openssl_verify() 我认为他们使用的 $data 是一个 URL
http://oauth.googlecode.com/svn/code/php/OAuth.php
| 归档时间: |
|
| 查看次数: |
2991 次 |
| 最近记录: |