趁着闲下来的时间和大家分享一下Google支付订单真伪的验证方式。
支付这里就不做介绍了,网上也比较多。
我们采用的是在后台进行验证,验证的代码也很简单,我使用的是PHP,如下
$signature = $_POST['signature'];//gp返回的加密
$originalJson = $_POST['originalJson'];//gp返回的订单json信息
$publickey = "在Google开发者平台注册账号创建应用后可以在该应用的列表项中找到";
$inapp_purchase_data = $originalJson;
$inapp_data_signature = $signature;
$google_public_key = $publickey;
$public_key = "-----BEGIN PUBLIC KEY-----\n" . chunk_split($google_public_key, 64, "\n") . "-----END PUBLIC KEY-----";
$public_key_handle = openssl_get_publickey($public_key);
$gpresult = openssl_verify($inapp_purchase_data, base64_decode($inapp_data_signature), $public_key_handle, OPENSSL_ALGO_SHA1);
就是上面这几行代码。我们来解释下这几个字段的意思
$signature:前端支付完成后传递过来的,是google支付返回的。
$originalJson:前端支付完成后传递过来的,是google支付返回的。
$publickey:在Google开发者平台注册账号创建应用后可以在该应用的列表项中找到
$gpresult = 1说明是真实的订单
这个就是验证的方式了,如有问题希望大家提建议。