在Stripe中测试OAuth时出现“未指定授权类型”错误

时间:2013-03-13 13:06:11

标签: php curl oauth-2.0 stripe-payments

我正在使用PHP测试Stripe的OAuth流程。 我可以在登陆页面中获取authorization code请求。

但是当我执行cURL请求从授权代码获取访问令牌时,我收到一个错误,即No grant type specified

以下是目前我的登陆页面代码:

<?php
$authorization_code = $_REQUEST['code'];

$params = array();
$params['grant_type'] = 'authorization_code';
$params['code'] = $authorization_code;

$url = 'https://connect.stripe.com/oauth/token';

$ch = curl_init();
$header = array ();
curl_setopt( $ch, CURLOPT_HTTPHEADER, array ('Accept: application/json', 'Content-Length: 0', 'Authorization: Bearer sk_test_secretkey' ) );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_POST, true );
curl_setopt( $ch, CURLOPT_POSTFIELDS,$params);

$response = curl_exec( $ch );
echo $response;
?>

这就是我得到的错误:

{ "error": "invalid_request", "error_description": "No grant type specified" }

我错过了什么吗?

感谢。

2 个答案:

答案 0 :(得分:1)

您可能需要对参数进行url编码:

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));

Stripe Connect文档(https://stripe.com/docs/connect/oauth#sample-code)中有一个PHP示例。如果您仍然遇到问题,可能需要使用某种HTTP代理来查看您实际通过网络发送的内容或联系support@stripe.com。

希望有所帮助!

答案 1 :(得分:0)

试试这个。这对我来说可以。


$params = array();
$params['grant_type'] = 'authorization_code';
$params['code'] = $authorization_code;

$url = 'https://connect.stripe.com/oauth/token';

$ch = curl_init();
$header = array ();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt( $ch, CURLOPT_POSTFIELDS,$params);

$response = curl_exec( $ch );
echo $response;
?> <pre>