Php 如何从Viva Wallet获取OAuth 2访问令牌
在此步骤中,我需要发送以下参数:Php 如何从Viva Wallet获取OAuth 2访问令牌,php,curl,oauth,Php,Curl,Oauth,在此步骤中,我需要发送以下参数: POST https://demo-accounts.vivapayments.com/connect/token HTTP/1.1 Authorization: Basic Z2VuZXJpY19hY3F1aXJpbmdfY2xpZW50LmFwcHMudml2YXBheW1lbnRzLmNvbTpnZW5lcmljX2FjcXVpcmluZ19jbGllbnQ Accept: application/json Content-Type: applic
POST https://demo-accounts.vivapayments.com/connect/token HTTP/1.1
Authorization: Basic Z2VuZXJpY19hY3F1aXJpbmdfY2xpZW50LmFwcHMudml2YXBheW1lbnRzLmNvbTpnZW5lcmljX2FjcXVpcmluZ19jbGllbnQ
Accept: application/json
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
我所做的:(访问我已经获得的令牌)
我收到的错误是:
错误的请求
您的浏览器发送了此服务器无法理解的请求。
参考#7.85c5d3ba.1606074405.4bd39133
链接API:(我在步骤2中停止了:请求访问令牌)
CURLOPT\u HTTPAUTH
要使用的HTTP身份验证方法。选项有:CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_gssnegate、CURLAUTH_NTLM、CURLAUTH_ANY和CURLAUTH_ANYSAFE
CURLOPT_USERPWD
用于连接的用户名和密码格式为“[用户名]:[密码]”
尝试更新代码向/token
端点发送POST请求以获取令牌
您应该在$result
中找到一个令牌:
$credentials = "$login:$password";
$ch = curl_init();
$options = array(
CURLOPT_URL => 'https://demo-accounts.vivapayments.com/connect/token',
CURLOPT_POST => 1,
CURLOPT_HEADER => false,
// Set the auth type as `Basic`
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
// Set login and password for Basic auth
CURLOPT_USERPWD => $credentials,
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded'
),
// To send additional parameters in the POST body
CURLOPT_POSTFIELDS => "grant_type=client_credentials"
);
curl_setopt_array($ch, $options);
// This is the response for your request
$result = curl_exec($ch);
// This is the response status code (if you are interested)
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
请查看示例并在此处进行尝试:
你应该发送带有前缀的代币:
持有者你的代币
你好,弗拉基米尔,谢谢你的回答。。我这样写:“持票人”。访问\u令牌,但未工作!:(…我不知道我在做什么,因为我的项目做得太晚了没有“不工作”这样的事情。请提供准确的结果或错误。因此,它返回相同的错误:请求错误您的浏览器发送了一个此服务器无法理解的请求。参考#7.85c5d3ba.1606080025.4C2E3140您为什么尝试将请求发送到https://demo-accounts.vivapayments.com/connect/token
?你说你已经有代币了吗?现在,它是成功了!我知道在stackoverflow这不是一个值得感谢的好做法,但我还不能投票……所以这里有一个类似于(Y)@CleberCastiglioni的答案,你应该能够将它标记为正确答案。
$credentials = "$login:$password";
$ch = curl_init();
$options = array(
CURLOPT_URL => 'https://demo-accounts.vivapayments.com/connect/token',
CURLOPT_POST => 1,
CURLOPT_HEADER => false,
// Set the auth type as `Basic`
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
// Set login and password for Basic auth
CURLOPT_USERPWD => $credentials,
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/x-www-form-urlencoded'
),
// To send additional parameters in the POST body
CURLOPT_POSTFIELDS => "grant_type=client_credentials"
);
curl_setopt_array($ch, $options);
// This is the response for your request
$result = curl_exec($ch);
// This is the response status code (if you are interested)
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);