|
|
|
รบกวนปรึกษาเรื่อง curl_setopt ครับ หรือท่านใดเคยเขียน ใช้งานกับ Apple care รบกวนแนะนำด้วยครับ ไม่มีข้อมูลเลยครับ |
|
|
|
|
|
|
|
รบกวน ช่วยดูโค๊ดนี้ให้ด้วยครับ ค่าที่ได้มัน ออกมาเป็นแบบนี้ครับ
Access is Denied. Client SSL Certificate Required.
$jsonStr = '{'.......................................
$jsonStr .= '}';
$url = "https://api-applecareconnect-ept2.apple.com/order-service/1.0/verify-order/";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT, 60);
curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM" );
curl_setopt($ch,CURLOPT_CAINFO, "GRX-0000617657.ACC1914.Test.AppleCare.chain.pem" ); //CA Cert Bundle
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
//curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, 1);
//curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$jsonStr);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Authorization: Basic d2F0Y2hldmVyOmh2SGZWYThm'
,'accAccessToken: {AppleCare Connect access token}'
,'Content-Type: application/json; charset=utf-8'
,'Content-Length: ' . strlen($jsonStr)
));
$result = curl_exec($ch);
if(empty($result)) { echo 'error: nothing returned'; } else { echo 'success!'; }
echo '<br>';
if($errno = curl_errno($ch)) {
$error_message = curl_strerror($errno);
echo "cURL error ({$errno}):\n {$error_message}";
}
curl_close($ch);
$result = json_decode($result,true);
unset($jsonStr);
curl_close($ch);
var_dump($result);
echo '<hr>';Code (PHP)
Tag : PHP, Ms SQL Server 2008, Ajax, WebService, Windows, Web Service
|
|
|
|
|
|
Date :
2015-10-14 14:17:29 |
By :
slingxer1156 |
View :
1491 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอาง่ายลอง ปิด cert ไปก่อนครับ
ใช้ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
ถ้ายังไม่ได้ลอง
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "ตรงนี้เป็นพาธไฟล์ cert");
|
|
|
|
|
Date :
2015-10-14 15:40:15 |
By :
adaaugusta |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองปรับแก้ โค๊ดตามที่บอกแล้วก็ยังไม่ได้เหมือนเดิมครับ รบกวน ดูโค๊ดให้ทีครับ ผมหาข้อมูลมาหลายที่แล้วยังทำไม่ได้เลยครับ ...ขอบคุณมากครับ
Code (PHP)
$jsonStr = '{'.......................................
$jsonStr .= '}';
$url = "https://api-applecareconnect-ept2.apple.com/order-service/1.0/verify-order/";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT, 60);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch,CURLOPT_SSLCERTTYPE,"PEM" );
curl_setopt($ch,CURLOPT_CAINFO, getcwd() . "GRX-0000617657.ACC1914.Test.AppleCare.chain.pem");
curl_setopt($ch,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$jsonStr);
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Authorization: Basic d2F0Y2hldmVyOmh2SGZWYThm'
,'accAccessToken: {AppleCare Connect access token}'
,'Content-Type: application/json; charset=utf-8'
,'Content-Length: ' . strlen($jsonStr)
));
$result = curl_exec($ch);
if(empty($result)) { echo 'error: nothing returned'; } else { echo 'success!'; }
echo '<br>';
if($errno = curl_errno($ch)) {
$error_message = curl_strerror($errno);
echo "cURL error ({$errno}):\n {$error_message}";
}
curl_close($ch);
$result = json_decode($result,true);
unset($jsonStr);
curl_close($ch);
var_dump($result);
echo '<hr>';
|
|
|
|
|
Date :
2015-10-14 19:51:13 |
By :
slingxer1156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GRX-0000617657.ACC1914.Test.AppleCare.chain.pem ไฟล?นี้มีอยู่จริงหรือป่าวครับ แล้วอยู่ตรงไหนในเวบของคุณ
แล้วเซ็ต permission ไว้อย่างไร
|
|
|
|
|
Date :
2015-10-14 20:31:57 |
By :
เฟี้ยวฟ้าว ส้มตำลาว |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ มีอยู่จริงครับ อยู่ใน โฟลเดอร์เดียวกับ ไฟล์ที่เรียกใช้เลยครับ
|
|
|
|
|
Date :
2015-10-14 21:33:44 |
By :
slingxer1156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใครพอจะมีความรู้เรื่องนี้รบกวนด้วยครับ ผมลองมาหลายรอบแล้วยังไม่ได้เลยครับ ทาง Apple ก็ไม่ได้ให้ข้อมูลมากกว่านี้เลยครับ ของ sample code ไปก็ ไม่มีให้ครับ ...
|
|
|
|
|
Date :
2015-10-16 11:07:17 |
By :
slingxer1156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองปรับเปลี่ยนโค๊ด ใหม่ แล้วเอาไปเทสที่ โฮสเช่า ใช้งานได้ครับ ไม่มีปัญหา แต่ พอมาใช้กับเครื่องที่ ออฟฟิศ ใช้งานไม่ได้ครับ ขึ้นหน้า ขาวๆ ไม่มี เออเร่อ อะไรออกมาเลยครับ
สเปคเครื่องนะครับ
Windows Server 2008 R2
IIS7
PHP 5.2.1
ไม่รู้ต้องไปเซท ค่าตรงไหนหรือเปล่า รบกวนด้วยนะครับ
โค๊ด ครับ
Code (PHP)
$url = 'https://api-applecareconnect-ept2.apple.com/order-service/1.0/verify-order/';
$request = '{...Data...}';
$ch = curl_init();
curl_setopt($ch,CURLOPT_HTTPHEADER,array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($request)
));
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSLCERT, 'Certificate/AppleCare.pem');
curl_setopt($ch, CURLOPT_SSLKEY, 'Certificate/privatekey.pem');
curl_setopt($ch, CURLOPT_SSLKEYPASSWD, 'Test12345');
$result = curl_exec($ch);
curl_close($ch);
echo $result;
|
|
|
|
|
Date :
2015-10-28 11:37:42 |
By :
slingxer1156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|