使用curl-php集成Razorpayx
Razorpayx旋度代码:使用curl-php集成Razorpayx,php,api,curl,razorpay,Php,Api,Curl,Razorpay,Razorpayx旋度代码: curl -u <YOUR_KEY>:<YOUR_SECRET> \-X POST https://api.razorpay.com/v1/contacts \-H "Content-Type: application/json" \-d '{ "name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "9123456789", "type": "e
curl -u <YOUR_KEY>:<YOUR_SECRET> \-X POST https://api.razorpay.com/v1/contacts \-H "Content-Type: application/json" \-d '{ "name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "9123456789", "type": "employee", "reference_id": "Acme Contact ID 12345", "notes": { "note_key": "Beam me up Scotty" }}'
curl-u:\-X POSThttps://api.razorpay.com/v1/contacts \-H“内容类型:application/json”\-d'{“name”:“Gaurav Kumar”,“email”:“Gaurav”。kumar@example.com“,”联系人“:”9123456789“,”类型“:”员工“,”参考id“:”Acme联系人id 12345“,”备注“{”备注键“:”向上传送Scotty“}”
尝试从curl php实现相同的功能:
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => "https://api.razorpay.com/v1/contacts/",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'api-key' => '<KEY>:<SECRET-KEY>'
),
CURLOPT_POSTFIELDS => array(
'name' => 'ABCD',
'email' => "abcd@gmail.com",
'type' => 'customer'
)
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
$ch=curl_init();
$curlConfig=array(
CURLOPT_URL=>”https://api.razorpay.com/v1/contacts/",
CURLOPT_POST=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_HTTPHEADER=>数组(
'api密钥'=>':'
),
CURLOPT_POSTFIELDS=>数组(
“名称”=>“ABCD”,
'电子邮件'=>“abcd@gmail.com",
'类型'=>'客户'
)
);
curl_setopt_数组($ch,$curlConfig);
$result=curl\u exec($ch);
卷曲关闭($ch);
现在给出的错误是“请提供api密钥以进行身份验证。”
我已经通过curl header传递了这些键;但这会带来错误。请指导如何解决这个问题。我也有同样的问题。基本上,你的api密钥不会出现在标题中,而是必须以用户密码的形式发送。下面的代码工作得很好
$ch = curl_init();
$fields = array();
$fields["name"] = $name;
$fields["email"] = $email;
$fields["contact"] = $phone;
$fields["reference_id"] = "customer".$phone;
$fields["type"] = "customer";
curl_setopt($ch, CURLOPT_URL, 'https://api.razorpay.com/v1/contacts');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "api-key: key-secret");
$headers = array();
$headers[] = 'Accept: application/json';
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
if (empty($data) OR (curl_getinfo($ch, CURLINFO_HTTP_CODE != 200))) {
$data = FALSE;
} else {
return json_decode($data, TRUE);
}
curl_close($ch);
下面是我的工作
$data =http_build_query(
json_decode('{
"account_number": "2323230009571676",
"fund_account_id": "fa_GHf8DVjqbYtAXH",
"amount": 1000000,
"currency": "INR",
"mode": "IMPS",
"purpose": "refund",
"queue_if_low_balance": true,
"reference_id": "Acme Transaction ID 12345",
"narration": "Acme Corp Fund Transfer",
"notes": {
"notes_key_1":"Tea, Earl Grey, Hot",
"notes_key_2":"Tea, Earl Grey… decaf."
}
}',true)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api.razorpay.com/v1/payouts");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, env('RZP_API_KEY') . ':' . env('RZP_API_SECRETES'));
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
echo $result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
将数据发布为json而不是查询是第一次,他们的文档中没有提到这方面的内容。你的帖子节省了我的时间。谢谢