【问题标题】:Razorpay:BAD_REQUEST_ERROR Please provide your api key for authentication purposesRazorpay:BAD_REQUEST_ERROR 请提供您的 api 密钥以进行身份​​验证
【发布时间】:2020-12-25 03:43:25
【问题描述】:

我是新手,正在使用 codeigniter,我正在使用 razorpay 支付网关 API 使用 razorpay 文档中定义的路由概念来转移金额。当我使用 curl 调用 api 时出现错误:

{ “错误”: { "code": "BAD_REQUEST_ERROR", "description": "请提供您的 api 密钥用于身份验证。", “来源”:空, “步骤”:空, “原因”:空, “元数据”:{} } }

我使用的代码是:

$url = 'https://api.razorpay.com/v1/payments/pay_E8JR8E0XyjUSZd/transfers';

/* Array Parameter Data */
$data = ['account' => 'va_FWSvFCwsaV1w5K', 'amount' => 90, 'currency' => 'INR'];

/* pass encoded JSON string to the POST fields */
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        
/* set the content type json */
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','YOUR_KEY_ID','YOUR_KEY_SECRET'));
        
/* set return type json */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        
/* execute request */
$result = curl_exec($ch);
         
/* close cURL resource */
curl_close($ch);
print_r($result);

我应该如何将我的密钥和秘密放在 curl 中,以免发生错误。

请帮帮我。提前致谢。

【问题讨论】:

标签: php codeigniter curl payment-gateway razorpay


【解决方案1】:

错误消息是不言自明的。这一行:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','YOUR_KEY_ID','YOUR_KEY_SECRET'));
    

应该包含您的实际密钥和秘密,而不是 your_key_idyour_key_secret 占位符字符串。否则授权失败

【讨论】:

  • 我使用了实际的密钥和秘密,但错误仍然相同@Javier Larroulet
【解决方案2】:

您需要将 key:secret 编码为 base64 格式。然后添加另一个 header Authorization 来使这个 API 工作。

headers = {
   "Content-Type": "application/json",
   "Authorization": "Basic " + encode_base64(Key:Secret)
}

在你的情况下,

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','Authorization:Basic (encoded_string)'));

让我知道它是否适合你!

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多