博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android内购订单验证 --- php实现
阅读量:6193 次
发布时间:2019-06-21

本文共 1438 字,大约阅读时间需要 4 分钟。

直接上代码:

function googleVerify($sdata,$google_public_key){    $sdata = json_decode($sdata,true);    $in_app_purchase_data = isset($sdata['receipt'])?$sdata['receipt']:"";    $in_app_data_signature = isset($sdata['signature'])?$sdata['signature']:"";    $public_key = "-----BEGIN PUBLIC KEY-----" . PHP_EOL .        chunk_split($google_public_key, 64, PHP_EOL) .        "-----END PUBLIC KEY-----";    $public_key_handle = openssl_pkey_get_public($public_key);    $result = openssl_verify($in_app_purchase_data, base64_decode($in_app_data_signature), $public_key_handle, OPENSSL_ALGO_SHA1);    $status = 0;    $purchaseTime = 0;    if($result == 1){        $status = 1;        $in_app_purchase_data = json_decode($in_app_purchase_data, true);        $purchaseTime = isset($in_app_purchase_data['purchaseTime'])?intval($in_app_purchase_data['purchaseTime']):0;    }    return ['status'=>$status,'purcaseTime' => intval($purchaseTime)];}

 

参数说明:

$google_public_key:在google play console()后台获取  :  开发工具》服务和API 中能看到的KEY. $sdata:格式如下:
//
//$sdata为字符串,非json对象 //receipt,signature都是客户端购买后,google返回的数据
$sdata='{  "receipt": "{\"orderId\":\"GPA.3339-1d91-2716-249\",\"packageName\":\"con\",\"productId\":\"com.w.coin1\",\"purchaseTime\":1540265097944,\"purchaseState\":0,\"purchaseToken\":\"ogiafjoiY\"}",  "signature": "fFbfYTh2m/7nL9OZVTkw=="}';

返回数据:

$status:== 1,为真订单,0为假订单

$purcaseTime:  订单购买的时间戳。

 
 

转载于:https://www.cnblogs.com/cj8988/p/10648693.html

你可能感兴趣的文章
怎样轻松将SD卡照片数据恢复
查看>>
Gsoap编译
查看>>
Linux下函数调用堆栈帧的详细解释【转】
查看>>
洛谷P2765 魔术球问题(贪心 最大流)
查看>>
SQL Server2016 配置管理器
查看>>
并发下线程池的最佳数量计算
查看>>
@EnableAsync和@Async开始异步任务支持
查看>>
匿名内部类和内部类中的this
查看>>
[Python设计模式] 第27章 正则表达式——解释器模式
查看>>
ROS设备的性价比图
查看>>
日志分析方法
查看>>
Android TV 开发 (1)
查看>>
The POM for XXX is invalid, transitive dependencies (if any) will not be available解决方案
查看>>
让你的系统“坚挺不倒”的最后一个大招——「降级」
查看>>
处理linux下面的mysql乱码问题(下面的utf8换成gb2312也是可以的)
查看>>
Java常见设计模式之适配器模式
查看>>
免费 官方的ASP.NET MVC电子书-Professional ASP.NET MVC 1.0
查看>>
MS CRM 2011 RetrieveMultiple with JScript JQuery Silverlight LINQ FetchXML and QueryExpression
查看>>
Elasticsearch: Indexing SQL databases. The easy way
查看>>
应用开发框架之——插件、包
查看>>