2017-11-21 19 views
6

私はNodeをかなり使い慣れており、Cloverが提供するAPIを使ってwebsocketを通じてClover Miniデバイスに接続しようとしています。ONLYノードを使用してCloverミニデバイスに接続するにはどうすればよいですか?

以下のサンプルコードをノードのみを使用して動作させようとしましたが、ノードで開くと何も起こりません。 (エラーはありません。まったく何も起こりません)

これはChromeでうまく動作するので、何が欠けていますか?

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

多分より多くのWebSocketを、ポリフィルする必要があるかもしれません。 – dandavis

答えて

2

クローバーで、開発者と接触するようになった後、そのドキュメントは多少の誤差がありました。他のユーザーのために、ここではgitub上のその問題へのリンクといくつかのコード例があります。

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()); 
}; 
関連する問題