ElementsProject / woocommerce-gateway-lightning

A WooCommerce gateway for lightning payments
115 stars 20 forks source link

Failed saving invoice #9

Closed otaviobonder-deel closed 6 years ago

otaviobonder-deel commented 6 years ago

Lightningd is running and Charged is running as well. Charged shows HTTP server running on localhost:9112. My router port is open, and the lightning charge server on the plugin settings page points to my ip:9112.

However, when I try to create a payment using LN, Woocommerce shows failed saving invoice

shesek commented 6 years ago
  1. Do you have the Lightning Charge API token configured in WooCommerce's settings?

  2. Are WordPress and Lightning Charge running on the same server?

  3. If not, are you able to access Lightning Charge using curl from the machine running WordPress? You can try something like:

    $ curl -u api-token:[your-token] http://[ln.charge.hostname]:9112/invoices

otaviobonder-deel commented 6 years ago
  1. Yes, API token configured
  2. No, WordPress running on SiteGround
  3. No, I get a connection failed even if my router port is correctly redirected to charged server
shesek commented 6 years ago

Try running charged with --host 0.0.0.0

otaviobonder-deel commented 6 years ago

No job, connection timed out.

shesek commented 6 years ago

Are you able to access charged locally? Try this from the machine running charged:

$ curl -u api-token:[your-token] http://127.0.0.1:9112/invoices

If this works, I'm not really sure how to help you... this appears to be a router configuration issue.

otaviobonder-deel commented 6 years ago

Yes I can, already tested it. Could create an invoice either

otaviobonder-deel commented 6 years ago

I've already checked if the router port is really open using https://www.yougetsignal.com/tools/open-ports/ and it's everything fine with this port.

shesek commented 6 years ago

Can you access the server by typing your public IP address into your browser URL bar?

otaviobonder-deel commented 6 years ago

Yes, I can connect to it using SSH

shesek commented 6 years ago

SSH is different. Are you able to access the HTTP server running on port 9112?

otaviobonder-deel commented 6 years ago

Yes, typing my IP address:9112 I receive Cannot GET /

shesek commented 6 years ago

Oh, interesting. Then its probably not an issue with your router, but rather on SiteGround's side. My guess is that they're blocking outgoing requests to non-standard ports.

Can you set your router to forward port 80 to your machine's port 9112?

otaviobonder-deel commented 6 years ago

Now I can't connect using my browser either

shesek commented 6 years ago

Looks like port 80 might already be used for something else. Hmm, maybe reach out to SiteGround and ask them to whitelist port 9112, or give you the list of whitelisted ports and try to use one of them?

otaviobonder-deel commented 6 years ago

Thank you again mate, will do it. Port 80 is used for Web Management, so I will try to change it to another port. If I get no success, I will contact them!

shesek commented 6 years ago

Other ports that are commonly open include 443 (typically used for SSL, but you could use it for HTTP), 8080 and 81.

shesek commented 6 years ago

443 being the most common of them all, I would try that first if your router isn't listening on it already.

shesek commented 6 years ago

I'm closing this issue because its not charge-related, but feel free to continue posting here if you have more questions.

otaviobonder-deel commented 6 years ago

You were right sir! SiteGround was blocking the port. Now everything is working fine! Just one offtopic question, it seems that the invoice number isn't line breaking, I'm sending the image attached. Do you know how to configure it? lnpayment

shesek commented 6 years ago

Add .ln-pay .payreq { word-wrap: break-word; } to your CSS.

Note that this isn't the invoice number, its the BOLT11 payment request.

otaviobonder-deel commented 6 years ago

Yes sure, BOLT11, sorry for the mistake and thank you for the css code, sir!

vnnkl commented 6 years ago

for anyone who might experience the similar issue with no line break after paying the invoice, the css code for that is .woocommerce-order .order_details{ word-wrap: break-word; }

shesek commented 6 years ago

@vnnkl Added in https://github.com/ElementsProject/woocommerce-gateway-lightning/commit/7da4990dfcbb1906906e23c1cf007a376b6a7ae0.

cmatrade commented 6 years ago

Hi, I have the same issue with the error msg "failed saving invoice", what the port did you configure into your router ? thanks

normandmickey commented 6 years ago

I have the same "failed saving invoice" problem. My WordPress/Woocommerce site is hosted at Pressable. My lightning node is self hosted and Lightning Charge works with NanoPos. The port is open and I get a response when I "curl $CHARGE/info" using the API token from a separate machine. Upgraded to latest Lightning Charge, still no joy.

shesek commented 6 years ago

@normandmickey Some suggestions:

  1. The port is open and I get a response when I "curl $CHARGE/info" using the API token from a separate machine.

    Can you verify this works if you run this from the same machine running WordPress?

  2. Are there any logs generated on Lightning Charge when you attempt to make an order on WooCommerce? If the request for creating the invoice is coming through, you should be seeing something there.

  3. Are you able to create an invoice with curl $CHARGE/invoice -d msatoshi=500?

normandmickey commented 6 years ago
  1. I dont have command line access to the WordPress site. Its hosted at Pressable. I will try to install WP on the lightning nodes machine soon to test locally.

  2. I dont see any activity on the Lightning node when trying to create an invoice with the plugin.

  3. Yes from another remote and locally on the Lightning node.

On Fri, Aug 17, 2018, 6:59 PM Nadav Ivgi notifications@github.com wrote:

@normandmickey https://github.com/normandmickey Some suggestions:

1.

The port is open and I get a response when I "curl $CHARGE/info" using the API token from a separate machine.

Can you verify this works if you run this from the same machine running WordPress? 2.

Are there any logs generated on Lightning Charge when you attempt to make an order on WooCommerce? If the request for creating the invoice is coming through, you should be seeing something there. 3.

Are you able to create an invoice with curl $CHARGE/invoice -d msatoshi=500?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ElementsProject/woocommerce-gateway-lightning/issues/9#issuecomment-414007996, or mute the thread https://github.com/notifications/unsubscribe-auth/ACV4DnG-lH6jck1gL3jCwEojFrwUlfh5ks5uR0rHgaJpZM4Rrh6X .

shesek commented 6 years ago

It appears to be some communication problem between the two servers. Maybe Pressable is rejecting the outgoing connection?

Are you using the default port (9112) for Charge? Some firewalls don't like non-standard ports, which might be a reason Pressable blocks it. You might have better look running on port 80.