เจอปัญหา omise-node และ key test


#1

สอบถามปัญหา ตัว omise-node ครับ
กำลังใช้ key test ทดสอบ ตอนนี้เกิดปัญหา 2 เรื่องครับ

  1. ชำระด้วยบัตรเครดิต แล้วแจ้งตอน create charge ว่า token not found ทั้งที่ก่อนหน้านี้ทดสอบได้ปกติ เพิ่งมาเป็นช่วงหลัง
  2. ทำไม internet banking กลายเป็น ชำระเงินจริงๆ ทั้งที่ใช้ key test

#2

@forsiam สวัสดีครับ
ระหว่างก่อน และหลังเกิด issue 2 ข้อนี้ ได้มีการแก้ไขโค้ดอะไรเพิ่มเติมไปไหมครับ

คุณ @forsiam พอจะสะดวกไหมครับถ้าผมจะขอดูชุดโค้ดในส่วนที่ integrate กับ Omise-Node library


#3

โค้ดส่วนการสั่งซื้อและชำระเงิน ไม่ได้มีการแก้ไขอะไรครับ

ส่วนของ nodejs ครับ

อันนี้ส่วนของบัตรเครดิตที่มีปัญหา tokent not found

var omise = require('omise')({
              'secretKey': CONFIG_PAYMENT.channel.omise.secret_key,
              'omiseVersion': CONFIG_PAYMENT.channel.omise.version
            });


omise.charges.create({
              'description': 'สำหรับ รายการสั่งซื้อ #'+order_detail.od_code,
              'amount': req_order_amount, 
              'currency': CONFIG_PAYMENT.channel.omise.currency,
              'capture': true,
              'card': req_omise_token
            }, function(err, resp) {

ส่วน front-end

$(’#form-omise #orderid’).val( order.id );
$(’#form-omise #order_amount’).val( price );

				OmiseCard.configureButton('#btn-pay-omise', {
					amount: price,
					submitLabel: 'ชำระเงิน',
					buttonLabel: 'ชำระเงิน',
				});

				OmiseCard.attach();

Error ที่ได้

{ object: ‘error’,
location: ‘https://www.omise.co/api-errors#not-found’,
code: ‘not_found’,
message: ‘token tokn_test_5c7n1f5yyrwcwd47zuk was not found’ }

ก่อนจะ live ใน production ก็ทดสอบใช้งานได้ปกติครับ เว้นช่วง 2-3 เดือน เพิ่งได้กลับมาลองทดสอบที่ Test Server ให้พนักงานใหม่ได้ลองเล่นระบบ เพิ่งเห็นว่า internet banking ใส่ key test เข้าไป แต่ดันไปหน้าชำระเงินจริงๆ ตัดเงินจริงๆ ทั้งที่ส่วนของบัตรเครดิตเป็นทดสอบ เลยทดสอบใหม่หมดแล้วเจอปัญหาครับ

==========================================================

test.usierra.com/usierra/website/ อันนี้เป็นเว็บสำหรับทดสอบครับ


#4

อันนี้ในส่วนของ internet banking ที่มีปัญหา ใส่ key test เข้าไป แต่ดันไปหน้าชำระเงินจริงๆ ตัดเงินจริงๆ ทั้งที่ส่วนของบัตรเครดิตเป็นทดสอบ

REQUEST({
url: ‘https://api.omise.co/sources’,
‘auth’: {
‘user’: CONFIG_PAYMENT.channel.omise.secret_key,
},
qs: {
amount: req_order_amount,
currency: CONFIG_PAYMENT.channel.omise.currency,
type: req_bank
},
method: ‘POST’,
headers: { ‘Content-Type’: ‘application/json’ }
}, function(error, rep, body){


#5

ผมเชื่อว่าคุณ @forsiam อาจจะใช้ public key ของ test และใช้ private key ของ live นะครับ

รบกวนตรวจสอบการตั้งค่าใน code ดูอีกสักครั้งนะครับว่า public key และ secret key นั้นถูกคู่กัน (:joy:) หรือเปล่าครับ เช่น
ถ้าเป็น test mode จะเป็น pkey_test_xxxxx กับ skey_test_xxxxx ลักษณะนี้ครับ
ถ้าเป็น live mode จะเป็น pkey_xxxxx กับ skey_xxxxx (ไม่มี test คั่น) ครับ


#6

เบื้องต้นหลังจากตรวจสอบ request log บนเว็บไซต์ทดสอบคุณ @forsiam แล้ว พบว่ามีการสร้าง token บน test mode และนำ token นั้นมาสร้าง charge บน live mode ครับ


#7

ผมใช้ key test นะครับ

{
  "public_key": "pkey_test_597puehc88fXXXXXX"
  , "secret_key": "skey_test_597puehcsw4XXXXXX"
  , "logo": "https://www.usierra.com/_images/default-avatar.jpg"
  , "label": "USIERRA.COM [TEST]"
  , "currency": "thb"
  , "version": "2017-11-02"
}

ถ้าใช้ key live ทำไมบัตรเครดิตถึงเป็น Test แต่ internet banking เป็น จ่ายจริงเหรอครับ


#8

เจอปัญหาแล้วครับ ทาง System Engineer ไปเปลี่ยน path โปรแกรมโดยไม่ได้แจ้ง กลายเป็นมีโค้ด 2 ที่ เลยทำให้ดูโค้ดผิดที่ไป
:sweat:

ขอบคุณมากครับ