einvoice 1.2.3 → 1.2.4
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/.travis.yml +3 -5
- data/docs/Tradevan E-Invoice APIs.md +38 -8
- data/lib/einvoice/version.rb +1 -1
- data/lib/faraday/response/decode_tradevan.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40f2b2396cadfedbe87f45989db798e6b665b765
|
4
|
+
data.tar.gz: d30bebc188094a7ca72e572d207af12ba7ebd518
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fb5f09976f2335250f66ca18ca5edb656f154b7de20b1ea46c20ae93761b8914d04c9861ead4181f98e1d694033febbda7b28dfd8938c17d7f1f5393f43ea69
|
7
|
+
data.tar.gz: b8c38e67ca831017fc2d8416668822a860245f09a7f9fb7bb01209f67ffce0d03284f2e7ab1ea3b2299a707d2a2643cc913615817b2390ef69acdce6c75b11ae
|
data/.travis.yml
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
language: ruby
|
2
2
|
sudo: false
|
3
3
|
cache: bundler
|
4
|
-
before_install: gem install bundler
|
4
|
+
before_install: gem install bundler
|
5
5
|
rvm:
|
6
|
-
- 2.
|
7
|
-
- 2.1
|
8
|
-
- 2.2.0
|
9
|
-
- 2.3.0
|
6
|
+
- 2.2.5
|
7
|
+
- 2.3.1
|
10
8
|
addons:
|
11
9
|
code_climate:
|
12
10
|
repo_token: 134e1f1cc8b60db4f2a491152c9227a6dbbfbeba5c1d05ee8b44cd78a1069f28
|
@@ -2,16 +2,46 @@
|
|
2
2
|
|
3
3
|
## Overview
|
4
4
|
|
5
|
-
*
|
6
|
-
*
|
7
|
-
*
|
5
|
+
* Preparation
|
6
|
+
* Encode Request
|
7
|
+
* Decode Response
|
8
8
|
* APIs
|
9
9
|
|
10
|
-
##
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
## Preparation
|
11
|
+
|
12
|
+
After contacting with Tradevan, you'll get
|
13
|
+
|
14
|
+
* acnt: your account name
|
15
|
+
* acntp: your account password
|
16
|
+
* key1: 1st AES encryption key
|
17
|
+
* key2: 2nd AES encryption key
|
18
|
+
|
19
|
+
## Encode Request
|
20
|
+
|
21
|
+
* Method: POST/GET
|
22
|
+
* URL: "#{endpoint}/#{path}"
|
23
|
+
* Parameters: "#{v}"
|
24
|
+
* v: `Base64_strict.encode(AES.encrypt(key2, { acnt: "#{acnt}", acntp: "#{acntp}", api_key1: "#{encryption_of_api_value1}", api_key2: "#{encryption_of_api_value2}", ... }))`
|
25
|
+
* `AES.encrypt(key, content)`:
|
26
|
+
* mode: CBC-128
|
27
|
+
* key: use `key2` for outter encryption, use `key1` for inner value encryption
|
28
|
+
* iv: same as key
|
29
|
+
* padding: no, but you should manually pad with `"\u0000"`(character space in bytes format) to fit correct CBC block size
|
30
|
+
* encryption_of_api_value1: `Base64_strict.encode(AES.encrypt(key1, api_value1))`
|
31
|
+
|
32
|
+
## Decode Response
|
33
|
+
|
34
|
+
* Format: JSON, i.e. `{ "Success": "Y", "Message": "#{encryption_of_message}" }`
|
35
|
+
* Success: "Y" for OK, "N" for Failure, "E" for Error
|
36
|
+
* Message:
|
37
|
+
* Plain Text when `"Success": "E"`
|
38
|
+
* Encryption Text when `"Success": "Y"` or `"Success": "N"`
|
39
|
+
* Decryption: `AES.decrypt(key2, Base64_strict.decode(response["Message"]))`
|
40
|
+
* `AES.decrypt(key, content)`:
|
41
|
+
* mode: CBC-128
|
42
|
+
* key: use `key2` for decrypt `response["Message"]` content
|
43
|
+
* iv: key
|
44
|
+
* padding: no
|
15
45
|
|
16
46
|
## APIs
|
17
47
|
|
data/lib/einvoice/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: einvoice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Yun
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|