1

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" }

何か足りないのですか?

ありがとう。

4

2 に答える 2

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 に連絡することをお勧めします。

それが役立つことを願っています!

于 2013-03-16T17:19:10.983 に答える