Google建议不要公开API编号。即使他们在大多数工作示例中要求在代码中包含您的API密钥,也足够公平
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
Run Code Online (Sandbox Code Playgroud)
然后你得到这个建议,在看到:https://support.google.com/googleapi/answer/6310037 - 不要直接在代码中嵌入API密钥!
因此,我的问题是如何安全地嵌入Google Map API密钥,同时使其对其他用户不可见?我使用PHP,JS和MySQL
我有URL缩短脚本运行良好,直到我在API控制台中添加了网站引用到KEY限制(我必须这样做).现在我不会回复短网址.我收到以下错误:
数组([error] =>数组([错误] =>数组([0] =>数组([domain] => usageLimits [reason] => ipRefererBlocked [message] =>请求未指定任何引用.请确保客户端发送referer或使用API控制台删除引用限制.[extendedHelp] => https://console.developers.google.com/apis/credentials?project=XXXXXXXXX))[code ] => 403 [ message] =>请求没有指定任何引用.请确保客户端发送referer或使用API控制台删除引用限制.))
我的PHP:
<?php
$longurl = "http://example.com";
$api_key_google = "XXXX_API_KEY_XXXXX";
$curl = curl_init('https://www.googleapis.com/urlshortener/v1/url?key='.$api_key_google);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(array('longUrl' => $longurl)));
$return = json_decode(curl_exec($curl), true);
curl_close($curl);
print_r($return);
echo $shortDWName = $return['id'];
?>
Run Code Online (Sandbox Code Playgroud)
我在这里失踪了什么?感谢您的帮助.
我确实在我的网站上实现了付款意图,并且现在可以与此测试卡完美配合4242 4242 4242 4242,但是对于其他需要3d安全方法的卡,我会遇到此错误"Invalid PaymentIntent status"。
我使用的代码与Stripe文档中存在的标准代码相同- 流程中充斥着一些代码来管理mysql,电子邮件,元数据等。
我哪里出错了?提前致谢。
连接到index.php的简化js代码
var stripe = Stripe('pk_test_xxx');
var elements = stripe.elements();
var cardElement = elements.create('card', {style: style});
cardElement.mount('#card-element');
var cardholderName = document.getElementById('cardholder-name');
var cardButton = document.getElementById('card-button');
var amount = $('#amount').val();
cardButton.addEventListener('click', function(ev) {
ev.preventDefault();
stripe.createPaymentMethod('card', cardElement, {
billing_details: {name: cardholderName.value}
}).then(function(result) {
if (result.error) {
} else {
$body.addClass("loading");
fetch('https://test.com/server.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
payment_method_id: result.paymentMethod.id,
amount: amount
})
}).then(function(result) { …Run Code Online (Sandbox Code Playgroud)