openreceive-rails 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/openreceive/rails/version.rb +1 -1
- data/skills/integrate-openreceive/SKILL.md +1 -0
- data/skills/integrate-openreceive/references/btcpay.md +1 -1
- data/skills/integrate-openreceive/references/django.md +1 -1
- data/skills/integrate-openreceive/references/fastapi.md +1 -1
- data/skills/integrate-openreceive/references/fastify.md +1 -1
- data/skills/integrate-openreceive/references/laravel.md +1 -1
- data/skills/integrate-openreceive/references/next.md +1 -1
- data/skills/integrate-openreceive/references/node.md +1 -1
- data/skills/integrate-openreceive/references/php.md +1 -1
- data/skills/integrate-openreceive/references/rails.md +1 -1
- data/skills/integrate-openreceive/references/woocommerce.md +153 -0
- metadata +6 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4c0caf7ce83354949800f2ccbc89f464ef29836d727119b597e171b229d55eae
|
|
4
|
+
data.tar.gz: 7f724089996083fa10d5f73482a832cea99b0a409feade661eb66e3837ecd950
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 386c6e60be7d4dfb562b5b16f62792c46a8eee488e217174c85ce2a3daef49605b45221bd56d2d81f4ab72fd313243c97c53b362f7c835fe8fa9c06722bd61c6
|
|
7
|
+
data.tar.gz: 2dc97ae52f9d6d470384ccff786e8383619fc349abaf31e1365532f62721b3b6dcabb845b5774a4471c19a7fccc1cf8ecdff0c916cc53c6224c56810c4e17220
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.5 - 2026-09-07
|
|
4
|
+
|
|
5
|
+
Release in lockstep with the Python/PHP publishing workflow fixes and complete
|
|
6
|
+
WooCommerce integration documentation. Shared HTTP golden fixtures now use
|
|
7
|
+
the canonical placeholder definitions. No Ruby public API change.
|
|
8
|
+
|
|
3
9
|
## 0.4.4 - 2026-09-07
|
|
4
10
|
|
|
5
11
|
Version lockstep with the 0.4.4 npm release (every checkout image now ships
|
|
@@ -30,6 +30,7 @@ code** (`NWC_URI`).
|
|
|
30
30
|
- Rails: [references/rails.md](references/rails.md)
|
|
31
31
|
- Django: [references/django.md](references/django.md)
|
|
32
32
|
- Laravel: [references/laravel.md](references/laravel.md)
|
|
33
|
+
- WordPress + WooCommerce: [references/woocommerce.md](references/woocommerce.md) — the packaged gateway and merchant settings.
|
|
33
34
|
- BTCPay Server: [references/btcpay.md](references/btcpay.md) — a plugin,
|
|
34
35
|
configured in BTCPay's store UI or Greenfield API; no application code,
|
|
35
36
|
no npm packages, no gem. The rest of this file is about the library.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (BTCPay Server)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Connect a BTCPay Server store to a receive-only NWC wallet with the OpenReceive
|
|
6
6
|
plugin, and optionally let payers pay BTCPay invoices with USDT, USDC, ETH or
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Django)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Django project — the app you are already working in. You
|
|
6
6
|
do not need a copy of the OpenReceive source: the Python package is on PyPI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (FastAPI)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a FastAPI application — the app you are already working in.
|
|
6
6
|
You do not need a copy of the OpenReceive source: the engine is on PyPI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Fastify)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Fastify application — the app you are already working in.
|
|
6
6
|
You do not need a copy of the OpenReceive source: the packages are on npm, and
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Laravel)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Laravel application — the app you are already working in.
|
|
6
6
|
You do not need a copy of the OpenReceive source: the package is on Packagist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Next.js)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Next.js App Router application — the app you are already
|
|
6
6
|
working in. You do not need a copy of the OpenReceive source: the packages are
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Node.js)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Node application — the app you are already working in. You
|
|
6
6
|
do not need a copy of the OpenReceive source: the packages are on npm, and the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (PHP)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a PHP application — the app you are already working in. You
|
|
6
6
|
do not need a copy of the OpenReceive source: the engine is on Packagist
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenReceive agent directions (Rails)
|
|
2
2
|
|
|
3
|
-
These directions describe OpenReceive 0.4.
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
4
|
|
|
5
5
|
Add OpenReceive to a Rails application — the app you are already working in. You
|
|
6
6
|
do not need a copy of the OpenReceive source: the gem is on RubyGems, the
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# OpenReceive agent directions (WordPress + WooCommerce)
|
|
2
|
+
|
|
3
|
+
These directions describe OpenReceive 0.4.5.
|
|
4
|
+
|
|
5
|
+
Install and configure the OpenReceive gateway in the existing WooCommerce
|
|
6
|
+
store. Preserve its theme, checkout, customer accounts, order model and prices.
|
|
7
|
+
The plugin bundles the PHP engine and checkout assets; the merchant does not
|
|
8
|
+
install npm or Composer packages on the WordPress server.
|
|
9
|
+
|
|
10
|
+
## Step 0 — inspect configuration
|
|
11
|
+
|
|
12
|
+
Check WordPress, WooCommerce and PHP versions, GMP and sodium availability,
|
|
13
|
+
whether the plugin is installed, and whether the Doctor panel reports the
|
|
14
|
+
receive-only NWC credential as set. Never display its value. For a real store,
|
|
15
|
+
ask the merchant to configure a receive-only wallet if none is available.
|
|
16
|
+
For repository development, use the Docker demo's explicit testkit override.
|
|
17
|
+
|
|
18
|
+
Upload a built plugin archive, not a zip of the source directory. The plugin
|
|
19
|
+
has not yet been accepted into the WordPress.org directory. Configuration and
|
|
20
|
+
the complete quickstart follow below.
|
|
21
|
+
|
|
22
|
+
The plugin owns only its payment-attempt tables in the WordPress database.
|
|
23
|
+
WooCommerce owns orders, totals, stock and email. Do not add an external
|
|
24
|
+
idempotency store, payment database, browser wallet credentials or custom
|
|
25
|
+
fulfillment implementation. Guest return links use WooCommerce's order key;
|
|
26
|
+
the plugin verifies it before issuing an expiring order-bound cookie.
|
|
27
|
+
|
|
28
|
+
Run `wp openreceive doctor` after configuration. Use the documented scheduled
|
|
29
|
+
reconciliation or optional notifications command for offline settlement.
|
|
30
|
+
Manual merchant refunds and provider-managed payer swap refunds are separate
|
|
31
|
+
flows; a receive-only NWC wallet cannot send payments.
|
|
32
|
+
|
|
33
|
+
## Further reading
|
|
34
|
+
|
|
35
|
+
- [Express Quickstart (Node)](https://openreceive.org/guides/quickstart-node.md)
|
|
36
|
+
- [Fastify Quickstart](https://openreceive.org/guides/quickstart-fastify.md)
|
|
37
|
+
- [FastAPI Quickstart](https://openreceive.org/guides/quickstart-fastapi.md)
|
|
38
|
+
- [Django Quickstart](https://openreceive.org/guides/quickstart-django.md)
|
|
39
|
+
- [Next.js Quickstart](https://openreceive.org/guides/quickstart-next.md)
|
|
40
|
+
- [Rails Quickstart](https://openreceive.org/guides/quickstart-rails.md)
|
|
41
|
+
- [PHP Quickstart (plain PHP)](https://openreceive.org/guides/quickstart-php.md)
|
|
42
|
+
- [Laravel Quickstart](https://openreceive.org/guides/quickstart-laravel.md)
|
|
43
|
+
- [BTCPay Server Quickstart](https://openreceive.org/guides/quickstart-btcpay.md)
|
|
44
|
+
- [BTCPay Plugin Reference](https://openreceive.org/guides/btcpay-reference.md)
|
|
45
|
+
- [Node ORM Recipes](https://openreceive.org/guides/node-orms.md)
|
|
46
|
+
- [Authorization](https://openreceive.org/guides/authorization.md)
|
|
47
|
+
- [Rate Limiting](https://openreceive.org/guides/rate-limiting.md)
|
|
48
|
+
- [Frontend Checkout](https://openreceive.org/guides/frontend-checkout.md)
|
|
49
|
+
- [Checkout UX](https://openreceive.org/guides/checkout-ux.md)
|
|
50
|
+
- [Headless Checkout](https://openreceive.org/guides/headless-checkout.md)
|
|
51
|
+
- [Automated Swaps](https://openreceive.org/guides/automated-swaps.md)
|
|
52
|
+
- [Swap Refunds](https://openreceive.org/guides/swap-refunds.md)
|
|
53
|
+
- [Lightning Swap Connect URI](https://openreceive.org/guides/lightning-swap-connect.md)
|
|
54
|
+
- [Environment Variables](https://openreceive.org/guides/environment-variables.md)
|
|
55
|
+
- [Payment Storage](https://openreceive.org/guides/storage.md)
|
|
56
|
+
- [Deploying OpenReceive](https://openreceive.org/guides/deploying.md)
|
|
57
|
+
- [Testing Your OpenReceive Integration](https://openreceive.org/guides/host-testing.md)
|
|
58
|
+
- [API Reference](https://openreceive.org/guides/api-reference.md)
|
|
59
|
+
- [Security](https://openreceive.org/guides/security.md)
|
|
60
|
+
- [Provider Registry](https://openreceive.org/guides/provider-registry.md)
|
|
61
|
+
- [Price Feeds](https://openreceive.org/guides/price-feeds.md)
|
|
62
|
+
- [React Material UI Recipe](https://openreceive.org/guides/react-material-ui-recipe.md)
|
|
63
|
+
- [Flask Recipe](https://openreceive.org/guides/flask-recipe.md)
|
|
64
|
+
- [Writing Your Own Checkout Route](https://openreceive.org/guides/custom-checkout-route.md)
|
|
65
|
+
- [Agent Directions: Node.js](https://openreceive.org/guides/agent-directions-node.md)
|
|
66
|
+
- [Agent Directions: Fastify](https://openreceive.org/guides/agent-directions-fastify.md)
|
|
67
|
+
- [Agent Directions: FastAPI](https://openreceive.org/guides/agent-directions-fastapi.md)
|
|
68
|
+
- [Agent Directions: Django](https://openreceive.org/guides/agent-directions-django.md)
|
|
69
|
+
- [Agent Directions: Next.js](https://openreceive.org/guides/agent-directions-next.md)
|
|
70
|
+
- [Agent Directions: Rails](https://openreceive.org/guides/agent-directions-rails.md)
|
|
71
|
+
- [Agent Directions: PHP](https://openreceive.org/guides/agent-directions-php.md)
|
|
72
|
+
- [Agent Directions: Laravel](https://openreceive.org/guides/agent-directions-laravel.md)
|
|
73
|
+
- [Agent Directions: BTCPay Server](https://openreceive.org/guides/agent-directions-btcpay.md)
|
|
74
|
+
- [WordPress + WooCommerce Quickstart](https://openreceive.org/guides/quickstart-woocommerce.md)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## The quickstart, in full
|
|
79
|
+
|
|
80
|
+
Inlined verbatim so this file needs no network access — follow it once Step 0
|
|
81
|
+
passes. The page it comes from is https://openreceive.org/guides/quickstart-woocommerce.
|
|
82
|
+
|
|
83
|
+
## WordPress + WooCommerce quickstart
|
|
84
|
+
|
|
85
|
+
Install the built OpenReceive plugin zip through **Plugins → Add New → Upload
|
|
86
|
+
Plugin**, with WooCommerce already active. The source directory needs a build;
|
|
87
|
+
it cannot be uploaded as-is. WordPress.org submission is still pending.
|
|
88
|
+
|
|
89
|
+
Requirements: WordPress 6.6+, WooCommerce 9+, 64-bit PHP 8.2+ with GMP and sodium,
|
|
90
|
+
and MySQL 8 or MariaDB 10.5+. Activation creates payment-attempt tables in the
|
|
91
|
+
existing WordPress database. No separate database or application is required.
|
|
92
|
+
|
|
93
|
+
### Configure the wallet
|
|
94
|
+
|
|
95
|
+
Open **WooCommerce → Settings → Payments → OpenReceive**. Enter a receive-only
|
|
96
|
+
NWC code, save, then enable the gateway. Saving verifies receive permissions
|
|
97
|
+
and fails closed on a spend-capable wallet unless the explicit override is set.
|
|
98
|
+
The password fields never show saved credentials. Values are encrypted using
|
|
99
|
+
keys derived from WordPress's authentication keys; re-enter them after rotating
|
|
100
|
+
those keys.
|
|
101
|
+
|
|
102
|
+
For managed deployments, configure `OPENRECEIVE_NWC_URI` in `wp-config.php` from
|
|
103
|
+
your server's secret environment. It takes precedence over the settings field.
|
|
104
|
+
Optional `OPENRECEIVE_LSC_URI_PRIMARY` and `OPENRECEIVE_LSC_URI_BACKUP` constants
|
|
105
|
+
configure swap providers. Never put these values in browser code or logs.
|
|
106
|
+
|
|
107
|
+
### Checkout and settlement
|
|
108
|
+
|
|
109
|
+
Both WooCommerce checkout blocks and classic checkout redirect to the order-pay
|
|
110
|
+
page. The plugin reads the amount from `WC_Order`, serves the bundled checkout,
|
|
111
|
+
and authorizes the customer through their account, checkout session or an
|
|
112
|
+
expiring signed cookie issued after verifying the order-pay key. Keep that
|
|
113
|
+
order-pay URL available to customers returning to a pending payment or swap
|
|
114
|
+
refund. The plugin verifies that each requested payment hash belongs to the order.
|
|
115
|
+
|
|
116
|
+
Payment attempts persist before invoice instructions appear. Settlement commits
|
|
117
|
+
once in the payment transaction. WooCommerce's `payment_complete` then handles
|
|
118
|
+
status, stock and emails. A durable order marker lets subsequent requests and
|
|
119
|
+
scheduled passes repair an interruption between settlement and order completion.
|
|
120
|
+
|
|
121
|
+
The checkout polling drives opportunistic reconciliation through the PHP
|
|
122
|
+
engine's shared database gate. Action Scheduler adds a recurring one-minute
|
|
123
|
+
safety net. Configure a system cron to run WordPress scheduled work on stores
|
|
124
|
+
with little traffic; no page visits means WP-Cron alone cannot guarantee prompt
|
|
125
|
+
settlement. Optional process-manager commands:
|
|
126
|
+
|
|
127
|
+
```sh
|
|
128
|
+
wp openreceive doctor
|
|
129
|
+
wp openreceive reconcile
|
|
130
|
+
wp openreceive notifications
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The notifications command runs as a separate process. The Doctor panel in the
|
|
134
|
+
gateway settings reports schema, credential presence, scheduling and attention
|
|
135
|
+
orders. A currency without a usable price feed makes the gateway unavailable.
|
|
136
|
+
|
|
137
|
+
### Refunds and removal
|
|
138
|
+
|
|
139
|
+
The receive-only wallet cannot send merchant refunds. Make those manually from
|
|
140
|
+
your wallet. Payer swap refunds use the configured provider through the same
|
|
141
|
+
authorized order-pay page; enabling LSC payments commits the shop to keeping
|
|
142
|
+
that recovery path available. See [swap refunds](https://openreceive.org/guides/swap-refunds.md).
|
|
143
|
+
|
|
144
|
+
Deactivation preserves payment records. Deleting the plugin drops its two
|
|
145
|
+
tables only if **Remove data on uninstall** was enabled. WooCommerce orders are
|
|
146
|
+
retained.
|
|
147
|
+
|
|
148
|
+
### Local example
|
|
149
|
+
|
|
150
|
+
The repository's `examples/wordpress` Docker stack builds the plugin and seeds
|
|
151
|
+
WooCommerce from the shared button catalog. Run `npm run demo wordpress` for
|
|
152
|
+
the real-wallet mode, or use its documented `compose.testkit.yml` override for
|
|
153
|
+
a disposable fake-wallet shop. No testkit routes are registered by default.
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: openreceive-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenReceive
|
|
@@ -15,28 +15,28 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.4.
|
|
18
|
+
version: 0.4.5
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.4.
|
|
25
|
+
version: 0.4.5
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: openreceive-server
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
30
|
- - '='
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.4.
|
|
32
|
+
version: 0.4.5
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - '='
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.4.
|
|
39
|
+
version: 0.4.5
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: rails
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,6 +136,7 @@ files:
|
|
|
136
136
|
- skills/integrate-openreceive/references/node.md
|
|
137
137
|
- skills/integrate-openreceive/references/php.md
|
|
138
138
|
- skills/integrate-openreceive/references/rails.md
|
|
139
|
+
- skills/integrate-openreceive/references/woocommerce.md
|
|
139
140
|
homepage: https://openreceive.org
|
|
140
141
|
licenses:
|
|
141
142
|
- MIT
|