2017-11-21 96 views
6

Node'a oldukça yeniyim ve Clover Mini tarafından sağlanan API'yi kullanarak bir Clover Mini cihazına web üzerinden bağlanmaya çalışıyorum.YALNIZCA düğüm kullanarak bir Clover mini cihazına nasıl bağlanırım?

Sadece düğüm kullanarak çalışmak için aşağıdaki örnek kodu değiştirmeyi denedim, ancak düğümde açtığımda hiçbir şey olmuyor. (Hata yok, sadece hiçbir şey olmuyor)

Chrome'da gayet iyi çalışıyor, yani eksik olan nedir?

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

link to github issue

belki daha fazla WebSocket'e polyfill gerekebilir. – dandavis

cevap

2

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

yonca geliştiriciler ile temas aldıktan sonra, kendi belgelerine bazı hatalar vardı. Buradaki diğer kullanıcılar için, bu sorunun, gitubunda olduğu gibi, bazı örnek kodlarda da bağlantısı var.

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()); 
}; 
İlgili konular