google退款服务端

675 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

接入google退款流程

1. 首先获取google后台相关参数,拼凑链接访问授权获取code

image.png 获取授权链接例如:accounts.google.com/o/oauth2/au…

2. 授权之后会跳转到如图,链接中的code就是获取刷新令牌的code字段

在这里插入图片描述

3. 参照文档获取刷新令牌

developers.google.com/accounts/do… image.png

4. 获取刷新令牌之后用刷新令牌获取每次请求的令牌就可以了,然后拼凑链接获取订单信息

参照文档:developers.google.com/android-pub… 访问链接里面的packageName需要在google后台查看对应的包 image.png

5. 最后的链接例如:www.googleapis.com/androidpubl…

访问会有报错如图: image.png

6. 此处需要开启api访问console.cloud.google.com/apis/api/an…

image.png

启用之后会继续报错如图: image.png

7. 此处需要去后台关联对应项目

image.png

开启服务

image.png

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);//退款时间
                       
                }
       		}
         }