-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
78d68fb
commit 0335b68
Showing
1 changed file
with
19 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,11 +6,11 @@ | |
2. ops_no : 2 - Seller App Registration | ||
3. ops_no : 4 - Buyer & Seller App Registration | ||
|
||
> Note: ops_no 3 & 5 have been depricated feature of Seller On Record(SOR) from Registry | ||
> Note: ops_no 3 & 5 have been depricated as feature of Seller On Record (SOR) in Registry is obsolete. | ||
## Prerequisites | ||
|
||
1. Newtwork Participant(NP) shall have a valid domain (FQDN/DNS) name. This becomes part of your subscriber ID (subscriber_id). | ||
1. Network Participant (NP) shall have a valid domain (FQDN/DNS) name. This becomes part of your subscriber ID (subscriber_id). | ||
|
||
``` | ||
eg: prod.ondcapp.com | ||
|
@@ -27,10 +27,10 @@ | |
|
||
## Steps | ||
|
||
> Steps 4 to 7 can be done using the utility [here](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service). Every Participant is shall perform Step 1 to 3 to generate keys as below | ||
1. Generate Signing Key Pair (ed25519 Algorithm) - signing_public_key and signing_private_key; (base64 encoded) utility below in step 2 | ||
2. Generate Encryption Key Pair (X25519 Algorithm) - encryption_public_key (ASN.1 Der format-> base64 encoded) and encryption_private_key (base64 encoded) | ||
Utilities to generate signing and encryption key pairs here: | ||
> Steps 4 to 7 can be done using the utility [here](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service). Every Participant shall perform Steps 1 and 2 to generate keys as below. | ||
1. Generate Signing Key Pair (ed25519 Algorithm) - signing_public_key and signing_private_key; (base64 encoded) | ||
> Refer utility below in step 2 | ||
2. Generate Encryption Key Pair (X25519 Algorithm) - encryption_public_key (ASN.1 Der format-> base64 encoded) and encryption_private_key (base64 encoded). Use the utilities provided below to generate signing and encryption key pairs: | ||
- [Java](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/ondc-crypto-utility-master) | ||
- [Python](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/signing_and_verification) | ||
- [GoLang](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/signing_and_verification/golang) | ||
|
@@ -39,9 +39,9 @@ | |
For NodeJS: Inbuilt Crypto library should be used instead of Libsodium library. The generated encryption public key is already encoded in the ASN.1 DER format. | ||
- You can refer to the documentation for information on the format and generation of keys [here](./key-format-generation.md). | ||
3. Generate Unique Request ID (request_id). It should be unique for a network participant. It can be in any format. For example - it can be UUID or a simple number or alphanumeric format. | ||
4. Generate SIGNED_UNIQUE_REQ_ID => ( Sign request_id using signing_private_key generated in step 1 (signed using ed25519 algorithm without hashing) ) | ||
4. Generate SIGNED_UNIQUE_REQ_ID => Sign request_id using signing_private_key generated in step 1 (signed using ed25519 algorithm without hashing). | ||
|
||
The [on_subscribe utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) has methods implemented to sign the message (request_id) | ||
The [on_subscribe utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) has methods implemented to sign the message (request_id). | ||
|
||
5. Create `ondc-site-verification.html` and place it at subscriber_id by adding SIGNED_UNIQUE_REQ_ID generated in step 4. Registry shall check existence of ondc-site-verification.html at | ||
`https://<subscriber_id>/ondc-site-verification.html` | ||
|
@@ -60,7 +60,7 @@ | |
</html> | ||
``` | ||
|
||
6. Configure developed /on_subscribe implementation | ||
6. Configure developed /on_subscribe implementation. | ||
Create encryption shared key using: encryption private key (generated in step 2) and ONDC public key to decrypt the challenge_string (received in the on_susbcribe call) using AES algorithm. | ||
|
||
``` | ||
|
@@ -72,10 +72,10 @@ | |
7. Host /on_subscribe endpoint : | ||
|
||
1. `https://<subscriber_id>/<callback_url>/on_subscribe ` | ||
The (Node.JS/Python) [utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) can be used to implement the /on_subscribe endpoint | ||
The (Node.JS/Python) [utility](https://github.com/ONDC-Official/reference-implementations/tree/main/utilities/on_subscibe-service) can be used to implement the /on_subscribe endpoint. | ||
|
||
8. Refer [swaggerhub document](https://app.swaggerhub.com/apis-docs/ONDC/ONDC-Registry-Onboarding/2.0.5#/ONDC%20Network%20Participant%20Onboarding/post_subscriber_url_on_subscribe) for request body and response of /subscribe API | ||
9. Create /subscribe request as follows | ||
8. Refer [swaggerhub document](https://app.swaggerhub.com/apis-docs/ONDC/ONDC-Registry-Onboarding/2.0.5#/ONDC%20Network%20Participant%20Onboarding/post_subscriber_url_on_subscribe) for request body and response of /subscribe API. | ||
9. Create /subscribe request as follows: | ||
|
||
``` | ||
1.subscriber_id= YOUR SUBSCRIBER ID (abc.ondcapp.com) | ||
|
@@ -107,17 +107,17 @@ https://prod.registry.ondc.org/subscribe | |
> 1. /subscribe payload schema is verified | ||
> 2. OCSP Check: SSL Certificate is verified | ||
> 3. Domain Verification: ondc-site-verification.html is verified; | ||
> - should be hosted on `https://<subscriber_id>/ondc-site-verification.html` | ||
> - request_id should be signed using the signing private key (without hashing) | ||
> iv. /on_susbcribe is called by the registry with a challenge string hosted on the callback_url | ||
> - should be hosted on `https://<subscriber_id>/ondc-site-verification.html` | ||
> - request_id should be signed using the signing private key (without hashing) | ||
> 4. /on_susbcribe is called by the registry with a challenge string hosted on the callback_url | ||
> `https://<subscriber_id>/<callback_url>/on_subscribe` | ||
> ```json | ||
> { | ||
> "subscriber_id": "abc.com", | ||
> "challenge": "encrypted_challenge_string" | ||
> } | ||
> ``` | ||
> v. The challenge string should be decrypted using the shared key (generated in step 6) and answer should be provided as a sync response. | ||
> 5. The challenge string should be decrypted using the shared key (generated in step 6) and answer should be provided as a sync response. | ||
> ```json | ||
> { | ||
> "answer": "decrypted_challange_string" | ||
|
@@ -144,7 +144,7 @@ https://prod.registry.ondc.org/subscribe | |
13. Check your record in registry lookup | ||
|
||
i. /lookup | ||
> 1. /lookup | ||
``` | ||
# For Staging | ||
|
@@ -167,7 +167,7 @@ https://prod.registry.ondc.org/lookup | |
}' | ||
``` | ||
ii. /vlookup | ||
>2. /vlookup | ||
``` | ||
# For Staging | ||
|
@@ -204,7 +204,7 @@ https://prod.registry.ondc.org/vlookup | |
- type: enums are "buyerApp", "sellerApp", "gateway" | ||
``` | ||
14. In case if you are not able to find your record in lookup and vlookup, please report to [email protected] | ||
14. In case you are not able to find your record in lookup and vlookup, please report to [email protected] | ||
|
||
``` | ||
Please mention below details in email: | ||
|