function OmiseChange::create ไม่ทำงาน

lib-php
thai

#1
$charge = OmiseCharge::create(
                array(
                    'amount' => '100000',
                    'currency' => 'thb',
                    'card' => $token,
                    'description' => 'Got it from try-omise-php repository in Github'
            ))
            or die($charge);

จาก code ชุดนี้ ผมลองรันผลดูแล้วแต่มันไม่เข้า function นี้ แต่ไปเด้ง error ใน php log

PHP Fatal error:  Uncaught Exception: error setting certificate verify locations:\n  CAfile: D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\res/../../../data/ca_certificates.pem\n  CApath: none in D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\res\\OmiseApiResource.php:182\nStack trace:\n#0 D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\res\\OmiseApiResource.php(143): OmiseApiResource->_executeCurl('https://api.omi...', 'POST', 'skey_test_5cpo4...', Array)\n#1 D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\res\\OmiseApiResource.php(78): OmiseApiResource->execute('https://api.omi...', 'POST', 'skey_test_5cpo4...', Array)\n#2 D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\OmiseCharge.php(78): OmiseApiResource::g_create('OmiseCharge', 'https://api.omi...', Array, NULL, NULL)\n#3 D:\\UniServerZ\\www\\payment-web\\php\\checkout.php(34): OmiseCharge::create(Array)\n#4 {main}\n  thrown in D:\\UniServerZ\\www\\payment-web\\php\\omise\\lib\\omise\\res\\OmiseApiResource.php on line 182, referer: http://localhost/payment-web/payment.html

ทางผมโหลด php lib ของทาง omise ทั้งก้อนมาลงใส่โปรเจคผม ผมอยากทราบข้อผิดพลาดว่ามันจะแก้ยังไงได้บ้างครับ แล้วผมเปิด curl ของ php แล้ว ตามรูปเลยครับ


#2

ผมรบกวนคุณ @WldzWai ช่วยเซฟภาพหน้าจอ folder structure ที่คุณ @WldzWai ติดตั้ง Omise-PHP library ให้ดูหน่อยได้ไหมครับ

โดยปรกติแล้ว เวลาติดตั้ง Omise-PHP library ตัวโฟลเดอร์จะมี structure ประมาณนี้ครับ (สมมติให้ root folder อยู่ที่ www)

• www/omise-php
    • www/omise-php/data/ca_certificates.pem << ไฟล์ CA จะต้องอยู่ใน directory นี้
    • www/omise-php/lib/omise
    • www/omise-php/lib/Omise.php
• www/index.php << ในกรณีที่ root folder อยู่ที่ www

#3

ต้องติดไฟล์ data ไปด้วยหรอครับ ผมนึกว่าแค่ lib ก็พอ


#4

@WldzWai จำเป็นจะต้องติดตั้งตัว data ลงไปด้วยครับ ในโฟลเดอร์จะมีไฟล์ cert.pem ที่ตัว library จำเป็นต้องใช้ครับ :smiley:


#5

ขอสอบถามอีกนิดครับ พอดีผมลอง echo ค่า $charge ออกมา แต่ไม่มีอะไรแสดงออกมาเลยครับ อยากสอบถามการแสดงค่าว่าจะต้องทำอย่างไรบ้าง


#6

สามารถ access ค่าต่างๆ ใน response body ที่ API ส่งกลับมาด้วยวิธีเดียวกับการ access array key ได้เลยครับ
เช่น

echo $charge['status'];

หรือลองดูตัวอย่างจาก repository นี้ก็ได้ครับ