2017-11-21 13 views
6

Tôi khá mới với Node và tôi đang cố kết nối với thiết bị Clover Mini thông qua websocket bằng API do Clover cung cấp.Làm cách nào để kết nối với thiết bị Clover mini bằng nút CHỈ?

Tôi đã thử sửa đổi mã ví dụ bên dưới để chỉ sử dụng nút, nhưng khi tôi mở nút đó thì không có gì xảy ra. (Không có lỗi, chẳng có gì xảy ra cả)

Tính năng này hoạt động tốt trong Chrome, vì vậy những gì còn thiếu?

https://github.com/clover/remote-pay-cloud

var $ = require('jQuery'); 

var clover = require("remote-pay-cloud"); 
var log = clover.Logger.create(); 

var connector = new clover.CloverConnectorFactory().createICloverConnector({ 
    "oauthToken": "1e7a9007-141a-293d-f41d-f603f0842139", 
    "merchantId": "BBFF8NBCXEMDV", 
    "clientId": "3RPTN642FHXTX", 
    "remoteApplicationId": "com.yourname.yourapplication:1.0.0-beta1", 
    "deviceSerialId": "C031UQ52340015", 
    "domain": "https://sandbox.dev.clover.com/" 
}); 

var ExampleCloverConnectorListener = function(cloverConnector) { 
    clover.remotepay.ICloverConnectorListener.call(this); 
    this.cloverConnector = cloverConnector; 
}; 

ExampleCloverConnectorListener.prototype = Object.create(clover.remotepay.ICloverConnectorListener.prototype); 
ExampleCloverConnectorListener.prototype.constructor = ExampleCloverConnectorListener; 

ExampleCloverConnectorListener.prototype.onReady = function (merchantInfo) { 
    var saleRequest = new clover.remotepay.SaleRequest(); 
    saleRequest.setExternalId(clover.CloverID.getNewId()); 
    saleRequest.setAmount(10000); 
    this.cloverConnector.sale(saleRequest); 
}; 

ExampleCloverConnectorListener.prototype.onVerifySignatureRequest = function (request) { 
    log.info(request); 
    this.cloverConnector.acceptSignature(request); 
}; 

ExampleCloverConnectorListener.prototype.onConfirmPaymentRequest = function (request) { 
    this.cloverConnector.acceptPayment(request.payment); 
}; 

ExampleCloverConnectorListener.prototype.onSaleResponse = function (response) { 
    log.info(response); 
    connector.dispose(); 
    if(!response.getIsSale()) { 
     console.error("Response is not an sale!"); 
     console.error(response); 
    } 
}; 

var connectorListener = new ExampleCloverConnectorListener(connector); 
connector.addCloverConnectorListener(connectorListener); 
connector.initializeConnection(); 
+0

có thể cần phải polyfill WebSocket, có thể nhiều hơn. – dandavis

Trả lời

2

Sau khi tiếp xúc với các nhà phát triển tại clover, tài liệu của họ đã có một số sai sót. Đối với những người dùng khác, vì lợi ích ở đây là liên kết đến vấn đề đó trên gitub của họ cũng như một số mã ví dụ.

link to github issue

const endpoint = "ws://yourip:yourport/remote_pay"; 

var webSocketFactory = function() { 
    let webSocketOverrides = { 
     createWebSocket: function() { 
      // To support self-signed certificates you must pass rejectUnauthorized = false. 
      // https://github.com/websockets/ws/blob/master/examples/ssl.js 
      let sslOptions = { 
       rejectUnauthorized: false 
      }; 
      // Use the ws library by default. 
      return new WebSocket(endpoint, sslOptions); 
     } 
    } 
    return Object.assign(new clover.CloverWebSocketInterface(endpoint), webSocketOverrides); 
}; 

var ExampleWebsocketPairedCloverDeviceConfiguration = function() { 
    clover.WebSocketPairedCloverDeviceConfiguration.call(this, 
     endpoint, // endpoint 
     "com.cloverconnector.javascript.simple.sample:1.4", // Application Id 
     "Javascript Simple Sample", // posName 
     "Register_1", // serialNumber 
     null, // authToken().get(
     webSocketFactory, 
     new clover.ImageUtil()); 
}; 
Các vấn đề liên quan