开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
接入google退款流程
1. 首先获取google后台相关参数,拼凑链接访问授权获取code
获取授权链接例如:accounts.google.com/o/oauth2/au…
2. 授权之后会跳转到如图,链接中的code就是获取刷新令牌的code字段
3. 参照文档获取刷新令牌
developers.google.com/accounts/do…
4. 获取刷新令牌之后用刷新令牌获取每次请求的令牌就可以了,然后拼凑链接获取订单信息
参照文档:developers.google.com/android-pub…
访问链接里面的packageName需要在google后台查看对应的包
5. 最后的链接例如:www.googleapis.com/androidpubl…
访问会有报错如图:
6. 此处需要开启api访问console.cloud.google.com/apis/api/an…
启用之后会继续报错如图:
7. 此处需要去后台关联对应项目
开启服务
8. 示例代码
$arparam = array(
'grant_type' => 'refresh_token',
'client_id' => "$this->client_id",
'client_secret' => "$this->client_secret",
'refresh_token' => $this->refresh_token
);
$urls = 'https://accounts.google.com/o/oauth2/token';
$strjson = $this->httppost($urls, $arparam);
if ($strjson) {
$ardata = json_decode($strjson, true);
$accesstoken = $ardata['access_token'];
$urls = 'https://www.googleapis.com/androidpublisher/v3/applications/'.$this->package_name.'/purchases/voidedpurchases?scope=https://www.googleapis.com/auth/androidpublisher&access_token=' . $accesstoken;
$urls .= '&startTime=' . $btime . '000';
$strjson = $this->httpget($urls);
if ($strjson) {
$ardata = json_decode($strjson, true);
}
if(isset($ardata['voidedPurchases']) && $ardata['voidedPurchases']) {
$arlist = $ardata['voidedPurchases'];
foreach($arlist as $item){
//处理自己的逻辑
$len = strlen($item['voidedTimeMillis']) - 3;
$refund_time = substr($item['voidedTimeMillis'], 0, $len);//退款时间
}
}
}