einvoice 1.2.3 → 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|