Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法在条带中接收访问令牌_Php_Oauth_Stripe Payments_Access Token - Fatal编程技术网

Php 无法在条带中接收访问令牌

Php 无法在条带中接收访问令牌,php,oauth,stripe-payments,access-token,Php,Oauth,Stripe Payments,Access Token,我是条带集成的新手。我已经阅读了Stripe的API文档,下面是OAuth流。但我仍然没有收到任何OAuth访问令牌。有人能解释一下我如何接收访问令牌吗?谢谢 if(isset($\u GET['code']){//Redirect w/code $code=$_GET['code']; $token\u request\u body=数组( “授权类型”=>“授权代码”, “客户id”=>“ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7”, “代码”=>$code,

我是条带集成的新手。我已经阅读了Stripe的API文档,下面是OAuth流。但我仍然没有收到任何OAuth访问令牌。有人能解释一下我如何接收访问令牌吗?谢谢

if(isset($\u GET['code']){//Redirect w/code
$code=$_GET['code'];
$token\u request\u body=数组(
“授权类型”=>“授权代码”,
“客户id”=>“ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7”,
“代码”=>$code,
“客户机密”=>“
);
$req=curl\u init(令牌\u URI);
curl_setopt($req,CURLOPT_RETURNTRANSFER,true);
curl_setopt($req,CURLOPT_POST,true);
curl_setopt($req,CURLOPT_POSTFIELDS,http_build_query($token_request_body));
//TODO:附加错误处理
$respCode=curl\u getinfo($req,CURLINFO\u HTTP\u代码);
$resp=json_decode(curl_exec($req),true);
卷曲关闭($req);
echo$resp['access_token'];
}else if(isset($\u GET['error']){//error
echo$\u GET['error\u description'];
}else{//显示OAuth链接
$authorize\u request\u body=数组(
“响应类型”=>“代码”,
'范围'=>'读写',
“客户id”=>“ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7”
);
$url=AUTHORIZE\u URI.'?'.http\u build\u query($AUTHORIZE\u request\u body);
回声“;

}
您应该为此使用OAuth 2.0客户端库,而不是按照Stripe的建议尝试自己滚动:

其中有很多,但这是一个很好的选择:

您可以修改此示例并检索帐户ID,如下所示:

$provider->getResourceOwner($accessToken)->getId();
检索到帐户ID后,您将存储并使用该ID作为连接帐户进行身份验证,如下所示:

他们实际上有一个官方的github库

他们有一个oauth的例子

只是因为什么原因在文件里找不到

如果他们删除了它,我会在这里包括这个文件,注意:他们使用他们的库,所以你必须在此之前安装它才能工作

<?php

require('../init.php');

\Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET_KEY'));
\Stripe\Stripe::setClientId(getenv('STRIPE_CLIENT_ID'));


if (isset($_GET['code'])) {
    // The user was redirected back from the OAuth form with an authorization code.
    $code = $_GET['code'];

    try {
        $resp = \Stripe\OAuth::token([
            'grant_type' => 'authorization_code',
            'code' => $code,
        ]);
    } catch (\Stripe\Error\OAuth\OAuthBase $e) {
        exit("Error: " . $e->getMessage());
    }

    $accountId = $resp->stripe_user_id;

    echo "<p>Success! Account <code>$accountId</code> is connected.</p>\n";
    echo "<p>Click <a href=\"?deauth=$accountId\">here</a> to disconnect the account.</p>\n";

} elseif (isset($_GET['error'])) {
    // The user was redirect back from the OAuth form with an error.
    $error = $_GET['error'];
    $error_description = $_GET['error_description'];

    echo "<p>Error: code=" . htmlspecialchars($error, ENT_QUOTES) . ", description=" . htmlspecialchars($error_description, ENT_QUOTES) . "</p>\n";
    echo "<p>Click <a href=\"?\">here</a> to restart the OAuth flow.</p>\n";

} elseif (isset($_GET['deauth'])) {
    // Deauthorization request
    $accountId = $_GET['deauth'];

    try {
        \Stripe\OAuth::deauthorize([
            'stripe_user_id' => $accountId,
        ]);
    } catch (\Stripe\Error\OAuth\OAuthBase $e) {
        exit("Error: " . $e->getMessage());
    }

    echo "<p>Success! Account <code>" . htmlspecialchars($accountId, ENT_QUOTES) . "</code> is disconnected.</p>\n";
    echo "<p>Click <a href=\"?\">here</a> to restart the OAuth flow.</p>\n";

} else {
    $url = \Stripe\OAuth::authorizeUrl([
        'scope' => 'read_only',
    ]);
    echo "<a href=\"$url\">Connect with Stripe</a>\n";
}

您应该立即滚动该API密钥,因为您已将其发布在此处。即使是测试密钥,也不应该公开共享密钥。