Getting Down & Dirty with Responsive Web Designmartinridgway
This document provides an overview of responsive web design. It begins by noting the increasing diversity of devices used to access websites. It then introduces responsive web design as a solution, allowing one website to adapt to different screens through a flexible grid, flexible images and media, and media queries. Examples of responsive sites are shown. Some criticisms of the approach are addressed. The business case for a responsive approach is made. Finally, the document gets into the technical details of implementing a responsive design through flexible grids, images, and media queries. It provides code examples and tips for supporting older browsers. Frameworks to help with responsive design are also mentioned.
This document discusses problems with procedural programming languages and how object-oriented programming addresses these issues. It outlines how data integrity and maintenance can be difficult when data does not have an owner in procedural languages. It then explains how object-oriented languages provide better abstraction through encapsulation of data and behaviors into classes and objects. The document provides examples of how constructors and destructors in object-oriented languages ensure proper initialization and cleanup of resources.
Bluetooth is a wireless technology that was created by Ericsson to simplify communication between electronic devices. It operates using short-range radio signals at a frequency of 2.45 GHz. Bluetooth allows devices such as laptops, phones, headphones, and wireless printers to connect and exchange information without cables. It provides wireless connectivity between devices to share data and transmit voice and video simultaneously.
The document summarizes Deepak Dwivedi's presentation on accelerating social evolution through aligning individual and societal development with the four goals or pursuits (purusharthas) described in Hindu philosophy - artha, kama, dharma, and moksha. It outlines metrics to measure progress on each goal and an individual's overall optimized potential. Case studies demonstrate tracking individual progress over time. The presentation argues this approach can help accelerate positive social change by evolving individuals and society in a synchronized manner.
Este documento resume las características fundamentales de las principales figuras societarias reconocidas en el derecho societario colombiano, incluyendo la sociedad colectiva, anónima, en comandita, y de responsabilidad limitada. Describe elementos esenciales como la responsabilidad de los socios, la administración, la representación legal, el voto, y el aporte de cada uno.
The document discusses friend classes and functions in C++. It notes that friend functions allow non-member functions to access private members of a class. It explains that friend functions are declared with the friend keyword but defined normally. The document provides examples of using friend functions between two classes and declaring a nested class within another class.
O documento discute a importância do gerenciamento de custos para as organizações e fornece detalhes sobre a composição da planilha de custos do Corte, Carregamento e Transporte (CCT) para Pernambuco, incluindo os custos da colheita manual e mecanizada, operações intermediárias, carregamento, transporte, veículos de apoio e indenizações trabalhistas.
Getting Down & Dirty with Responsive Web Designmartinridgway
This document provides an overview of responsive web design. It begins by noting the increasing diversity of devices used to access websites. It then introduces responsive web design as a solution, allowing one website to adapt to different screens through a flexible grid, flexible images and media, and media queries. Examples of responsive sites are shown. Some criticisms of the approach are addressed. The business case for a responsive approach is made. Finally, the document gets into the technical details of implementing a responsive design through flexible grids, images, and media queries. It provides code examples and tips for supporting older browsers. Frameworks to help with responsive design are also mentioned.
This document discusses problems with procedural programming languages and how object-oriented programming addresses these issues. It outlines how data integrity and maintenance can be difficult when data does not have an owner in procedural languages. It then explains how object-oriented languages provide better abstraction through encapsulation of data and behaviors into classes and objects. The document provides examples of how constructors and destructors in object-oriented languages ensure proper initialization and cleanup of resources.
Bluetooth is a wireless technology that was created by Ericsson to simplify communication between electronic devices. It operates using short-range radio signals at a frequency of 2.45 GHz. Bluetooth allows devices such as laptops, phones, headphones, and wireless printers to connect and exchange information without cables. It provides wireless connectivity between devices to share data and transmit voice and video simultaneously.
The document summarizes Deepak Dwivedi's presentation on accelerating social evolution through aligning individual and societal development with the four goals or pursuits (purusharthas) described in Hindu philosophy - artha, kama, dharma, and moksha. It outlines metrics to measure progress on each goal and an individual's overall optimized potential. Case studies demonstrate tracking individual progress over time. The presentation argues this approach can help accelerate positive social change by evolving individuals and society in a synchronized manner.
Este documento resume las características fundamentales de las principales figuras societarias reconocidas en el derecho societario colombiano, incluyendo la sociedad colectiva, anónima, en comandita, y de responsabilidad limitada. Describe elementos esenciales como la responsabilidad de los socios, la administración, la representación legal, el voto, y el aporte de cada uno.
The document discusses friend classes and functions in C++. It notes that friend functions allow non-member functions to access private members of a class. It explains that friend functions are declared with the friend keyword but defined normally. The document provides examples of using friend functions between two classes and declaring a nested class within another class.
O documento discute a importância do gerenciamento de custos para as organizações e fornece detalhes sobre a composição da planilha de custos do Corte, Carregamento e Transporte (CCT) para Pernambuco, incluindo os custos da colheita manual e mecanizada, operações intermediárias, carregamento, transporte, veículos de apoio e indenizações trabalhistas.
Tài liệu giới thiệu Trung tâm Thanh toán Điện tử VTC Pay bản cập nhập này sẽ mang tới bạn cái nhìn tổng quan nhất về quá trình hình thành và phát triển, những thành tựu, năng lực kinh doanh của VTC Pay. Đồng thời, cung cấp cho bạn thông tin về những dịch vụ mà chúng tôi cung cấp như Cổng thanh toán - Ví điện tử, thanh toán cho dịch vụ nội dung số (thanh toán bằng thẻ cào), hệ thống tài khoản và tính cước VTC.
Một thiết bị USB TOKEN chữ ký số. ♢ Một giấp chứng nhận sử dụng chứng thư số VNPT-CA do Trung tâm kinh doanh VNPT thuộc Tổng công ty dịch vụ viễn thông
Hiện nay, các công ty hoạt động kinh doanh, sản xuất đều có nhiều chi nhánh và trụ sở tại các địa điểm khác nhau nên rất cần hệ thống quản lý lao động và thời gian làm việc. Hệ thống này sẽ giúp người quản lý tập trung dữ liệu làm việc của nhân viên về trụ sở chính để tiện theo dõi và quản lý mà vẫn đem lại hiệu quả một cách khách quan và chính xác. Hệ thống quản lý lao động đang ngày càng trở nên phổ biến. Trên thị trường cũng có khá nhiều các phương án, giải pháp hiệu quả để đáp ứng được nhu cầu này.
Chữ ký số Ca2 là gì?
Chữ ký số CA2 dành cho doanh nghiệp chứng thực chữ ký trong văn bản, tài liệu của doanh nghiệp trong các giao dịch điện tử. Bảo mật thông tin. Tiện lợi trong thanh toán điện tử. Chuyển đổi đơn giản. Tiết kiệm hơn cho doanh nghiệp.
Chữ ký số TPHCM
Địa chỉ: 19 Đường C18, Phường 12, Tân Bình, Hồ Chí Minh
Điện thoại: 0932780176
Website: https://chukysotphcm.net
Tài liệu giới thiệu Trung tâm Thanh toán Điện tử VTC Pay bản cập nhập này sẽ mang tới bạn cái nhìn tổng quan nhất về quá trình hình thành và phát triển, những thành tựu, năng lực kinh doanh của VTC Pay. Đồng thời, cung cấp cho bạn thông tin về những dịch vụ mà chúng tôi cung cấp như Cổng thanh toán - Ví điện tử, thanh toán cho dịch vụ nội dung số (thanh toán bằng thẻ cào), hệ thống tài khoản và tính cước VTC.
Một thiết bị USB TOKEN chữ ký số. ♢ Một giấp chứng nhận sử dụng chứng thư số VNPT-CA do Trung tâm kinh doanh VNPT thuộc Tổng công ty dịch vụ viễn thông
Hiện nay, các công ty hoạt động kinh doanh, sản xuất đều có nhiều chi nhánh và trụ sở tại các địa điểm khác nhau nên rất cần hệ thống quản lý lao động và thời gian làm việc. Hệ thống này sẽ giúp người quản lý tập trung dữ liệu làm việc của nhân viên về trụ sở chính để tiện theo dõi và quản lý mà vẫn đem lại hiệu quả một cách khách quan và chính xác. Hệ thống quản lý lao động đang ngày càng trở nên phổ biến. Trên thị trường cũng có khá nhiều các phương án, giải pháp hiệu quả để đáp ứng được nhu cầu này.
Chữ ký số Ca2 là gì?
Chữ ký số CA2 dành cho doanh nghiệp chứng thực chữ ký trong văn bản, tài liệu của doanh nghiệp trong các giao dịch điện tử. Bảo mật thông tin. Tiện lợi trong thanh toán điện tử. Chuyển đổi đơn giản. Tiết kiệm hơn cho doanh nghiệp.
Chữ ký số TPHCM
Địa chỉ: 19 Đường C18, Phường 12, Tân Bình, Hồ Chí Minh
Điện thoại: 0932780176
Website: https://chukysotphcm.net
1. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
CÔNG TY TNHH MTV VTC CÔNG NGHỆ VÀ NỘI DUNG SỐ (VTC INTECOM)
Trung tâm phát triển công nghệ
TÀI LIỆU KỸ THUẬT
API PAYGATE
https://ebank.vtc.vn
Tài liệu kết nối dành cho đối tác Version <1.0>
Dịch vụ chia sẻ kho hàng 21/10/2011
2. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 2
Mục lục
1. TỔNG QUAN....................................................................................................................3
1.1. Mục đích của tài liệu..................................................................................................................3
1.2. Phạm vi sử dụng.........................................................................................................................3
1.3. Quy trình kết nối: ......................................................................................................................3
1.4. Khái quát....................................................................................................................................3
2. MÔ TẢ CÁC HÀM API .................................................................................................5
2.1. TopupTelco (commandType=TopupTelco;version=1.0)...........................................................5
2.2. CheckAccountGameExits (commandType=CheckAccount; version=1.0)................................6
2.3. TopupPartner (commandType=TopupPartner;version=1.0) ...................................................8
2.4. BuyCard (commandType=BuyCard;version=1.0) ....................................................................9
2.5. GetCard (commandType=GetCard;version=1.0) ...................................................................11
2.6. GetBalance (commandType=GetBalance; version=1.0)..........................................................12
2.7. GetQuantiyCard (commandType=GetQuantityCard; version=1.0).......................................13
2.8 Hàm CheckPartnerTransCode { commandType=CheckPartnerTransCode; version=1.0}......15
2.9 Hàm GetHistoryTrans { commandType= GetHistoryTrans; version=1.0} .............................16
2.10 Hàm GetDebitAmount {commandType= GetDebitAmount; version=1.0}...........................17
2.11 Hàm GetSalePrice {commandType= GetSalePrice; version=1.0}.........................................19
2.12 Hàm GetPromotionDate { commandType= GetPromotionDate; version=1.0} .....................20
3. PHỤ LỤC........................................................................................................................ 21
3.1. Phụ lục mã dịch vụ...................................................................................................................21
3.2. Phụ lục mã lỗi...........................................................................................................................23
4. CODE THAM KHẢO.................................................................................................. 25
4.1. Tạo chữ ký bằng RSA .............................................................................................................25
4.2. Verify chữ ký bằng RSA ..........................................................................................................25
4.3. Mã hóa bằng thuật toán tripleDES..........................................................................................25
4.4. Giải mã bằng thuật toán tripleDES .........................................................................................27
3. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 3
1. Tổng quan
1.1. Mục đích của tài liệu
Tài liệu mô tả kịch bản đối tác kết nối với eBank để sử dụng dịch vụ mua mã
thẻ hoặc nạp tiền trực tiếp cho các tài khoản game, điện thoại di động thông
qua hệ thống VTC Paygate
1.2. Phạm vi sử dụng
Tài liệu cung cấp thông tin chi tiết về hệ thống dịch vụ của Paygate tại VTC
Intecom để các đối tác có thể sử dụng làm cơ sở xây dựng kết nối thực hiện nạp
tiền vào tài khoản hoặc mua mã thẻ game, điện thoại.
1.3. Quy trình kết nối:
Là tiến trình để đối tác kết nối tới API kho thẻ Paygate. Bao gồm 5 bước:
Môi trường test:
Bước 1: VTC eBank gửi tài liệu kỹ thuật cho đối tác
Bước 2: Đối tác gửi các thông tin cần thiết bao gồm:
Số điện thoại di động (số này chưa từng đăng ký tài khoản trên Paygate)
Email (Email để nhận thông tin gửi về từ Paygate mật khẩu, public key,
mail cảnh báo hạn mức …)
Tên công ty
Tên đăng nhập Paygate của đối tác (Tên không chứa các ký tự đặc biệt,
không chứa khoảng cách, không dài quá 15 ký tự)
Bước 3: Sau khi đối tác gửi thông tin phía Paygate sẽ tạo tài khoản cho đối tác.
Thông tin mật khẩu, public key, … sẽ tự động gửi về mail của đối tác)
Bước 4: Đối tác nhận mail thông tin tài khoản, vào Paygate
(http://sandbox1.vtcebank.vn/pay.vtc.vn/ ) vào mục Hồ sơ>Phân phối>Thông
tin kết nối để cập nhật các thông tin kết nối (TripleDes key, Public RSA Key).
Lưu ý cần nhập Public Key RSA định dạng xml (tự gen hoặc dùng tool VTC
gen)
Bước 5: Đối tác thực hiện kết nối tới API của Paygate theo tài liệu hướng dẫn
http://sandbox3.vtcebank.vn/PayAPI/WS/GoodsPaygate.asmx
Chú ý: Khi đã kết nối thành công dưới môi trường test, khi chuyển lên môi
trường thật thì đối tác làm tương tự như dưới test, cần trỏ từ link test sang link
thật, thay tài khoản test bằng tài khoản thật :
- Url Paygate: https://pay.vtc.vn
- Url API Paygate: https://pay.vtc.vn/WS/GoodsPaygate.asmx
1.4. Khái quát
- Mô hình kết nối
4. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 4
VTC Paygate
System
Service Gateway
(VTC’s Service &
Providers’s
Seivice)
VTC’s
PARTNER
MERCHANT
Http request
Http request End
Users
End
Users
- Quy trình nghiệp vụ:
5. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 5
2. Mô tả các hàm API
Tất cả các chức năng API kho hàng của CDT đều gọi thông qua một hàm duy
nhất RequestTransaction. Tùy thuộc vào giá trị tham số CommandType mà
thực hiện chức năng nào.
2.1. TopupTelco (commandType=TopupTelco;version=1.0)
public string RequestTransaction(string requesData, string partnerCode,
string commandType, string version)
Chức năng: Nạp tiền cho điện thoại di động
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là TopupTelco.
- version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account>The account name should Topup </Account>
<Amount>Amount of transaction (VND)</Amount>
<Quantity>null(empty)</Quantity>
<TransDate>Date and time transaction format yyyyMMddHHmmss(format
24 hour)</TransDate>
<OrgTransID>Code transaction arising from the Partner </OrgTransID>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1.
- Account: Là số điện thoại di động cần nạp tiền (topup). VD 0986645352
- Amount: Số tiền giao dịch (VNĐ). Mệnh giá hợp lệ: 10000, 20000, 30000,
50000, 100000, 200000, 300000, 500000.
- Transdate (string, required): Ngày giờ giao dịch theo định dạng
yyyyMMddHHmmss (24 hour).
- Orgtransid (string, required): Mã giao dịch phát sinh từ phía Partner mỗi
làn khách hàng thực hiện một giao dịch, các mã giao dịch các lần gửi cho VTC
6. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 6
không được trùng nhau (mỗi giao dịch chỉ gửi 1 lần). Mã giao dịch chỉ gồm các
ký tự chữ cái và số ([a-z],[A-Z], 0-9) không gồm các ký tự đặc biệt (@, #, …)
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = ServiceCode + "-" + Account + "-" + Amount + "-" +
PartnerCode + "-" + Transdate + "-" + Orgtransid
Ví dụ: “3002-0983463588-10000-logich-20100824193823-124242”
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ResponseCode>|<OrgTransID>|<PartnerBalance>|<dataSign>
- Orgtransid: Mã giao dịch phát sinh bởi partner.
- ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- PartnerBalance: Số tiền cược còn lại của Partner tại VTC.
- dataSign: Chữ ký RSA
dataSign = ResponseCode +”-”+OrgTransID +”-”+PartnerBalance
2.2. CheckAccountGameExits (commandType=CheckAccount;
version=1.0)
public string RequestTransaction(string requesData, string partnerCode,
string commandType, string version)
Chức năng: Cho phép đối tác kiểm tra tài khoản game được nạp có tồn tại hay
không truớc khi thực hiện nạp tiền
Các tham số đầu vào:
- PartnerCode (string required): Mã khách hàng tại VTC Paygate Topup (ví
dụ: “LOGICH”)
- CommandType required): Tên hàm API, trường hợp này là CheckAccount.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0)
7. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 7
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account>The account name should Topup </Account>
<Amount> null(empty)</Amount>
<TransDate>null(empty)</TransDate>
<OrgTransID null(empty)</OrgTransID>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1
- Account: Là tên tài khoản điện thoại di động (hoặc tài khoản game) cần
topup.
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = ServiceCode + "-" + Account + "-" + PartnerCode
Ví dụ: “3002-vtctest-logich”
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ResponseCode>|<Datasign>
- ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- DataSign: Chữ ký RSA
DataSign = <ResponseCode>
-Trường hợp với gia hạn truyền hình số của VTC:
Là một chuỗi string có dạng sau:
<ResponseCode>|<Datasign>|<Data>
8. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 8
- DataSign: Chữ ký RSA
DataSign = <ResponseCode>
2.3. TopupPartner (commandType=TopupPartner;version=1.0)
public string RequestTransaction(string requesData, string partnerCode,
string commandType, string version)
Chức năng: Nạp tiền vào tài khoản game của khách hàng.
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là TopupPartner.
- version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requesData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account>The account name should Topup </Account>
<Amount>Amount of transaction (VND)</Amount>
<Quantity>null(empty)</Quantity>
<Description> thông tin mô tả</ Description >
<TransDate>Date and time transaction format yyyyMMddHHmmss(format
24 hour)</TransDate>
<OrgTransID>Code transaction arising from the Partner </OrgTransID>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1.
- Account: Là tài khoản game cần topup.
- Amount: Số tiền topup (VNĐ). Mệnh giá hợp lệ: 10000, 20000, 30000,
50000, 100000, 200000, 300000, 500000.
- Transdate (string, required): Ngày giờ giao dịch theo định dạng
yyyyMMddHHmmss (24 hour).
- Orgtransid (string, required): Mã giao dịch phát sinh từ phía Partner mỗi
làn khách hàng thực hiện một giao dịch, các mã giao dịch các lần gửi cho VTC
9. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 9
không được trùng nhau (mỗi giao dịch chỉ gửi 1 lần). Mã giao dịch chỉ gồm các
ký tự chữ cái và số ([a-z],[A-Z], 0-9) không gồm các ký tự đặc biệt (@, #, …)
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
- Description (string, required) : Thông tin khách hàng với trường hợp topup
gia hạn thuê bao truyền hình số vệ tinh của VTC. Có dạng như sau :
<Fullname>|<Mobile>|<Address>|<Email>
Nếu khác thì truyền null.
DataSign = ServiceCode + "-" + Account + "-" + Amount + "-" +
PartnerCode + "-" + Transdate + "-" + Orgtransid
Ví dụ: “3002-vtctest1-10000-logich-20100824193823-124242”
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ResponseCode>|<OrgTransID>|<PartnerBalance>|<DataSign>
- Orgtransid: Mã giao dịch phát sinh bởi partner.
- ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- PartnerBalance: Số tiền cược còn lại của Partner tại VTC.
- dataSign: Chữ ký RSA
dataSign = ResponseCode +”-”+OrgTransID +”-”+ PartnerBalance
2.4. BuyCard (commandType=BuyCard;version=1.0)
public string RequestTransaction(string requesData, string partnerCode,
string version)
Chức năng: Thực hiện giao dịch mua mã thẻ (điện thoại, game), key phần
mềm …
Mô tả các tham số đầu vào:
10. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 10
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là BuyCard.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account>null (empty) </Account>
<Amount>Value of card (VND)</Amount>
<Quantity>Number card want buy</Quantity>
<TransDate>Date and time transaction format yyyyMMddHHmmss(format
24 hour)</TransDate>
<OrgTransID>Code transaction arising from the Partner </OrgTransID>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1.
- Amount: Mệnh giá của loại thẻ muốn mua. Mệnh giá hợp lệ: 10000, 20000,
30000, 50000, 100000, 200000, 300000, 500000.
- Quantity: Số lượng thẻ cần mua
- Transdate (string, required): Ngày giờ giao dịch theo định dạng
yyyyMMddHHmmss (24 hour).
- Orgtransid (string, required): Mã giao dịch phát sinh từ phía Partner mỗi
làn khách hàng thực hiện một giao dịch, các mã giao dịch các lần gửi cho VTC
không được trùng nhau (mỗi giao dịch chỉ gửi 1 lần). Mã giao dịch chỉ gồm các
ký tự chữ cái và số ([a-z],[A-Z], 0-9) không gồm các ký tự đặc biệt (@, #, …)
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = ServiceCode + "-" + Amount + "-" + quantity+ "-"+PartnerCode
+ "-" + Transdate + "-" + Orgtransid
Ví dụ: “3002-100000-50-logich-20100824193823-124242”
11. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 11
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ResponseCode>|<OrgTransID>|<VTCTransID>|<PartnerBalance>|<dataSign
>
- VTCTransID: Mã giao dịch phát sinh bởi VTC. Đối tác dùng mã giao dịch
này để lấy lại danh sách mã thẻ đã mua
- OrgTransID: Mã giao dịch phát sinh bởi Partner
- ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- PartnerBalance: Số tiền cược còn lại của Partner tại VTC.
- dataSign: Chữ ký RSA
dataSign = ResponseCode +”-”+OrgTransID +”-”+VTCTransID +”-
”+PartnerBalance
2.5. GetCard (commandType=GetCard;version=1.0)
public string RequestTransaction(string requesData, string partnerCode,
string version)
Chức năng: Lấy ra mã thẻ mà đối tác đã mua
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là GetCard.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account> null(empty)<</Account>
<Amount> Value of card (VND)</Amount>
<TransDate>null(empty)</TransDate>
<OrgTransID> Code transaction arising from the Partner </OrgTransID>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
12. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 12
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1.
- Amount: Mệnh giá thẻ. Mệnh giá hợp lệ: 10000, 20000, 30000, 50000,
100000, 200000, 300000, 500000.
- Orgtransid (string, required): Mã giao dịch do VTC đã gửi trả về trong
hàm BuyCard
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = ServiceCode + "-" + Amount + "-" + PartnerCode + "-" +
Orgtransid
Ví dụ: “3002-10000-logich-124242”
Kết quả trả về:
Là một chuỗi dữ liệu mã hóa bằng tripleDES sau khi giải mã có dạng sau. Key
dùng để giải mã là key do bên VTC gửi cho đối tác:
<ResponseCode>|<OrgTranID|<ListCard>
ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- OrgTranID: Mã giao dịch
- ListCard: Danh sách mã thẻ khách hàng đã về. Có định dạng như sau:
ListCard = <CardCode1>:<CardSerial1>:<ExpriceDate1>|
<CardCoden>:<CardSerialn>:<ExpriceDaten>
- CardCode: Mã thẻ
- CardeSerial: Số serial thẻ
- ExpriceDate: Ngày hết hạn thẻ (có format dd/MM/yyyy. Ví du:20/11/2013)
2.6. GetBalance (commandType=GetBalance; version=1.0)
public string RequestTransaction(string requesData,string partnerCode,string
commandType, string version)
Chức năng: Dùng để kiểm tra số dư tài khoản cược của đối tác tại VTC.
13. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 13
Mô tả tham số đầu vào:
- PartnerCode (string required): Mã khách hàng tại VTC Paygate Topup (ví
dụ: “LOGICH”)
- CommandType required): Tên hàm API, trường hợp này là GetBalance.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0)
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account> null(empty)<</Account>
<Amount>null(empty)<Amount>
<TransDate> null(empty)</TransDate>
<OrgTransID> null(empty)OrgTransID>
<DataSign> null(empty)</DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1
- Account (string, not required): Empty
- Amount (int, not require): Empty
- Transdate (string, not required): Empty
- Orgtransid (string[KetNoi]Tài liệu mô tả API kho hàng mới, not
required): Empty
- DataSign (string, required): RSA(“partnerCode”)
Kết quả trả về:
Là một chuỗi string có dạng sau:
<PartnerBalance>|<Datasign>
- PartnerBalance: Số dư tài khoản của đối tác trên Paygate
- DataSign: Chữ ký RSA
DataSign = < PartnerBalance >
Chú ý: Dữ liệu đối tác gửi lên (RequesData, partnerCode, commandType,
version) và dữ liệu trả về của VTC phải được encode.
2.7. GetQuantiyCard (commandType=GetQuantityCard; version=1.0)
public string RequestTransaction(string requesData,string partnerCode,string
commandType, string version)
14. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 14
Chức năng: Dùng để lấy số lượng mã thẻ hiện có trong kho của VTC.
Mô tả tham số đầu vào:
- PartnerCode (string required): Mã khách hàng tại VTC Paygate Topup (ví
dụ: “LOGICH”)
- CommandType required): Tên hàm API, trường hợp này là
GetQuantityCard.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0)
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
<RequestData>
<ServiceCode>A service code defined by the VTC </ServiceCode>
<Account> null(empty)<</Account>
<Amount>null(empty)<Amount>
<TransDate> null(empty)</TransDate>
<OrgTransID> null(empty)OrgTransID>
<DataSign> null(empty)</DataSign>
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1
- Account (string, not required): Empty
- Amount (int, not require): truyền = 0
- Transdate (string, not required): Empty
- Orgtransid (string, required): Truyền capcha
- DataSign (string, required): RSA(ServiceCode + “-“ + “OrgTransID”)
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ListQuantityCard>|<Datasign>
- ListQuantityCard: Chuỗi trả về kiểu Json, có định dạng như sau:
[{“CategoryName”:”Mã thẻ Viettel”,”SLTonCuoiKi”:”10000”,”Value”:”5000”},
{“CategoryName”:”Mã thẻ Viettel”,”SLTonCuoiKi”:”20000”,”Value”:”4000”}]
- DataSign: Chữ ký RSA
DataSign =RSA( ListQuantityCard)
Chú ý: Dữ liệu đối tác gửi lên (RequesData, partnerCode, commandType,
version) và dữ liệu trả về của VTC phải được encode.
15. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 15
2.8 Hàm CheckPartnerTransCode {
commandType=CheckPartnerTransCode; version=1.0}
Chức năng: Thực hiện kiểm tra xem giao dịch của đối tác đã được thực hiện
hay chưa?
public string RequestTransaction(string requesData,string partnerCode,string
commandType, string version)
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là CheckPartnerTransCode.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<Account>empty </Account>
<OrgTransID>Mã giao dịch của đơn hàng </OrgTransID>
< CheckTypeServiceCode >Loại giao dịch(mã thẻ,topup)</CheckTypeSeviceCode>
<DataSign>Electronic signatures </DataSign>
</ RequestData >
Trong đó:
- Orgtransid (string, required): Mã giao dịch phát sinh từ phía Partner mỗi
làn khách hàng thực hiện một giao dịch, các mã giao dịch các lần gửi cho VTC
không được trùng nhau (mỗi giao dịch chỉ gửi 1 lần). Mã giao dịch chỉ gồm các
ký tự chữ cái và số ([a-z],[A-Z], 0-9) không gồm các ký tự đặc biệt (@, #, …)
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
- CheckTypeServiceCode: Gía trị kiểu int
CheckTypeServiceCode =1 Check mua mã thẻ
CheckTypeServiceCode khác 1:Check các giao dịch khác
DataSign = PartnerCode + "-" + Orgtransid+-+ CheckTypeServiceCode
16. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 16
Kết quả trả về:
Là một chuỗi string có dạng sau: <ResponseCode>|<Data>|<dataSign>
Trong đó :
Data = < VTCTransID >|< Orgtransid >|<Account>|<Amount>|<Date>
<ResponseCode> = 1 : thành công.
<ResponseCode >= -99: Nghi vấn,ko check dc kết quả.
<ResponseCode> = -502>Không tồn tại giao dịch.
- VTCTransID: Mã giao dịch phát sinh bởi VTC. Đối tác dùng mã giao dịch
này để lấy lại danh sách mã thẻ đã mua
- Orgtransid: Mã giao dịch phát sinh bởi Partner
- ResponseCode: Thể hiện kết quả giao dịch (Có phụ lục mã lỗi kèm theo mỗi
dịch vụ)
- Account :Tài khoản VTC của đối tác
- Date:Ngày giao dịch
- dataSign: Chữ ký RSA
dataSign = RSA (ResponseCode|Data)
2.9 Hàm GetHistoryTrans { commandType= GetHistoryTrans;
version=1.0}
Chức năng: Lấy lịch sử giao dịch của đối tác
public string RequestTransaction(string requestData,string partnerCode,string
commandType, string version)
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là GetHistoryTrans.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
17. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 17
< RequestData >
<Account>Tài khoản VTCPay của đối tác </Account>
<FromDate>Ngày bắt đầu xem lịch sử giao dịch </ FromDate >
<ToDate>Ngày xem lịch sử giao dịch </ ToDate >
< DataSign > Electronic signatures </ DataSign >
</ RequestData >
Trong đó:
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
- FromDate: định dạng ngày như sau yyyy/mm/dd ví dụ: 2013/10/28
- ToDate: định dạng ngày như sau yyyy/mm/dd ví dụ: 2013/10/30
DataSign =RSA (Account + "-" + FromDate + "-" + ToDate)
Chú ý:Lịch sử giao dịch chỉ lấy trong giới hạn tối đa <5 ngày.
Thường là 2 ngày để đảm bảo dử liệu truyền ổn định và chính xác nhất.
Kết quả trả về:
Là một chuỗi string có dạng sau: <ResponseCode>|<Data>|<dataSign>
Trong đó :
Data = Chuỗi json kết quả
<ResponseCode> = 1 : thành công.
<ResponseCode> = 0 :Không có dữ liệu.
- dataSign: Chữ ký RSA
dataSign = RSA (ResponseCode |Data)
2.10 Hàm GetDebitAmount {commandType= GetDebitAmount;
version=1.0}
Chức năng: Lấy số tiền nợ của khách hàng ứng với hóa đơn tương ứng
18. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 18
public string RequestTransaction(string requestData,string partnerCode,string
commandType, string version)
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là GetDebitAmount.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>Mã dịch vụ được cung cấp bởi VTC </ServiceCode>
<Account>Là mã hóa đơn </Account>
< DataSign > Electronic signatures </ DataSign >
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1
- Account: Là mã hóa đơn của khách hàng cần thanh toán
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = RSA(ServiceCode + "-" + Account + "-" + PartnerCode )
Ví dụ: “VTC0340-abc1111-mpaytest”
Kết quả trả về:
Là một chuỗi string có dạng sau:
<ResponseCode>|<Account >|<AmountBill>|Extent>|<Sign>
Trong đó :
ResponseCode :Kiểu int > 0 : thành công.
19. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 19
ResponseCode < 0 :Thất bại,mã lỗi được mô tả ở phần phụ lục
- dataSign: Chữ ký RSA
dataSign = RSA (ResponseCode +”-”+ Account +”-”+ AmountBill +”-”+
Extent)
2.11 Hàm GetSalePrice {commandType= GetSalePrice; version=1.0}
Chức năng: Trả ra giá bán đã có chiết khấu của 1 sản phẩm.
public string RequestTransaction(string requestData,string partnerCode,string
commandType, string version)
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là GetSalePrice.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
<ServiceCode>Mã dịch vụ được cung cấp bởi VTC </ServiceCode>
<Amount>Mênh giá của 1 sản phẩm </ Amount >
< DataSign > Electronic signatures </ DataSign >
</ RequestData >
Trong đó:
- ServiceCode: Là mã dịch vụ do VTC quy định theo phụ lục 1
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign = RSA(ServiceCode + "-"+”Amount”+”-” + PartnerCode )
Ví dụ: “VTC0340-10000-mpaytest”
Kết quả trả về:
20. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 20
Là một chuỗi string có dạng sau:
<ResponseCode>|<Amount >|<SalePrice>|Extent>|<Sign>
Trong đó :
ResponseCode :Kiểu int > 0 : thành công.
ResponseCode < 0 :Thất bại,mã lỗi được mô tả ở phần phụ lục
- dataSign: Chữ ký RSA
dataSign = RSA (ResponseCode +”-”+”Amount”+”-”+SalePrice +”-”+ Extent)
2.12 Hàm GetPromotionDate { commandType= GetPromotionDate;
version=1.0}
Chức năng: Lấy lịch khuyến mại của các nhà mạng
public string RequestTransaction(string requestData,string partnerCode,string
commandType, string version)
Mô tả các tham số đầu vào:
- partnerCode: Là tên tài khoản của đối tác khi đăng ký sử dụng dịch vụ này
trên VTC Paygate (do VTC quy định và gửi cho đối tác).
- CommandType: Tên hàm API, trường hợp này là GetPromotionDate.
- Version: Phiên bản của dịch vụ (hiện tại là 1.0).
- requestData: Là một chuỗi string theo định dạng XML:
<?xml version="1.0" encoding="utf-8" ?>
< RequestData >
< DataSign > Electronic signatures </ DataSign >
</ RequestData >
Trong đó:
- DataSign (string, required): Chữ ký điện tử trên giao dịch tương ứng của
VTC’s Partner. Chữ ký điện tử theo thuật toán RSA 1024 bit bằng private key
của VTC’s Partner tạo trong cặp key và cung cấp cho VTC Paygate public key
để xác nhận chữ ký. Nếu xác nhận đúng chữ ký sẽ thực hiện theo thông tin yêu
cầu
DataSign =RSA (PartnerCode)
21. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 21
Kết quả trả về:
Là một chuỗi string có dạng sau: <ResponseCode>|<Data>|<dataSign>
Trong đó :
Data = Chuỗi json kết quả
[{"Provider":"VinaPhone","BeginDate":"08/10/2013
17:00:00","EndDate":"08/10/2013 20:00:00","Apply":"Tat ca thue bao tra
truoc"}, {"Provider":"Viettel","BeginDate":"27/03/2014
00:00:00","EndDate":"29/03/2014 23:00:00","Apply":"Tat ca thue bao tra
truoc"}]
<ResponseCode> = 1 : thành công.
<ResponseCode> = 0 :Không có dữ liệu.
- dataSign: Chữ ký RSA
dataSign = RSA (ResponseCode |Data)
3. Phụ lục
3.1. Phụ lục mã dịch vụ
Mã thẻ:
ServiceCode Tên dịch vụ
Các mệnh giá thẻ Chức năng
VTC0027 Mã thẻ Viettel 10000, 20000, 30000,
50000, 100000, 200000,
300000, 500000
BuyCard, GetCard
VTC0028 Mã thẻ Vina 10000, 20000, 30000,
50000, 100000, 200000,
300000, 500000
BuyCard, GetCard
VTC0029 Mã thẻ Mobi 10000, 20000, 30000,
50000, 100000, 200000,
300000, 500000
BuyCard, GetCard
VTC0030 Mã thẻ SFone 10000, 20000, 30000,
50000, 100000, 200000,
300000, 500000
BuyCard, GetCard
VTC0173 Mã thẻ GMobile 10000, 20000, 30000,
50000, 100000, 200000,
300000, 500000
BuyCard, GetCard
VTC0154 Thẻ t Mã thẻ
V VVietnamobile
10000, 20000, 50000,
100000, 200000, 300000,
500000
BuyCard, GetCard
VTC0067 Mã thẻ Zing 20000, 60000, 120000 BuyCard, GetCard
VTC0068 Mã thẻ Gate 10000, 20000, 50000,
100000, 200000, 500000 BuyCard, GetCard
VTC0114 Mã thẻ đa năng 10000, 20000, 50000,
22. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 22
VTC Online 100000, 200000, 300000,
500000 BuyCard, GetCard
VTC0185 Mã thẻ MyCard 49000, 146500, 330000,
422000, 930000
BuyCard, GetCard
VTC0191 Mã thẻ Zynga 140000, 28000, 700000 BuyCard, GetCard
VTC0166 Mã thẻ OnCash 20000, 60000, 100000,
200000, 500000
BuyCard, GetCard
VTC0144 Key
BITDEFENDER
150000: Bitdefender
Antivirus plus 2014 1U/1Y
170000: Bitdefender
Antivirus plus 2014 3U/1Y
190000:Bitdefender Internet
security 2014 1U/1Y
250000:Bitdefender Internet
security 2014 3U/1Y
BuyCard, GetCard
VTC0319 Mã thẻ Sò (Garena) 20000, 50000, 100000,
200000, 500000
BuyCard, GetCard
VTC0355
VTC0347(Test)
Mã thẻ Steam
Wallet
126000 (Thẻ Steam $5)
252000 (Thẻ Steam $10)
378000 (Thẻ Steam $15)
504000 (Thẻ Steam $20)
756000 (Thẻ Steam $30)
1260000 (Thẻ Steam $50)
1512000 (Thẻ Steam $60)
BuyCard, GetCard
VTC0321 Mã thẻ LIKE 20000, 50000, 100000,
500000, 1000000
BuyCard, GetCard
VTC0171 CD Key 7554 125000, 249000 BuyCard, GetCard
VTC0321 Mã thẻ SoftNYX 63000, 105000, 208110 BuyCard, GetCard
Nạp tiền trực tiếp:
ServiceCode Tên dịch vụ
Các mệnh giá nạp tiền Chức năng
VTC0040 Nạp tiền
Hocmai.vn
30000, 50000, 100000 TopupPartner,
CheckAccount
VTC0041 Nạp tiền
Truongtructuyen.vn
30000, 50000, 100000 TopupPartner,
CheckAccount
VTC0056 Nạp tiền trả trước
Viettel
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0217 Nạp tiền DCOM-
3G Viettel trả trước
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0219 Nạp tiền DCOM-
3G Viettel trả sau
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0329 Nạp tiền trả sau
Viettel
Số tiền lớn hơn 5000 và phải
chẵn nghìn
TopupTelco
VTC0057 Nạp tiền trả trước
Vina
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0201 Nạp tiền Vina trả
sau
Số tiền lớn hơn 5000 và phải
chẵn nghìn
TopupTelco
23. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 23
VTC0058 Nạp tiền trả trước
Mobi
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0130 Nạp tiền Mobi trả
sau
Số tiền lớn hơn 5000 và phải
chẵn nghìn
TopupTelco
VTC0127 Nạp tiền trả trước
EVN
10000, 20000, 30000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0176 Nạp tiền
Vietnamobile trả
trước
10000, 20000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0177 Nạp tiền trả trước
Beeline
10000, 20000, 50000,
100000, 200000, 300000,
500000
TopupTelco
VTC0193 Gia hạn truyền
hình số của VTC
400000, 650000, 720000,
1200000
TopupPartner
CheckAccount
VTC0187 Nạp bạc (Gate) 10000, 20000, 50000,
100000, 200000, 300000,
500000
TopupPartner,
VTC0051 Nạp @Point Tam
Quốc Chí (Asia
Soft)
20000, 50000, 100000 TopupPartner,
CheckAccount
VTC0209 Nạp mCash 10000, 20000, 50000,
100000, 200000, 500000
TopupPartner,
CheckAccount
VTC0307 Nạp zing xu 10000, 20000, 50000,
60000,100000,
120000,200000, 500000
TopupPartner
VTC0308 Nạp Oncash 10000, 20000, 50000,
100000, 200000,500000
TopupPartner
Chú ý: Đây là mã các dịch vụ hiện tại VTC đang cung cấp. Nếu có thay đổi (bổ
xung dịch vụ mới hoặc bỏ bớt) chúng tôi sẽ thông báo cho đối tác
3.2. Phụ lục mã lỗi
Output Format Là một string có định dạng sau:
<ResponseCode>|<OrgTransID>|<PartnerBalance>
ResponseCode Description Comment
1 Giao dịch thành công
0 Giao dịch chưa xác định Giao dịch nghi vấn,
không hoàn tiền
-1 Lỗi hệ thống Giao dịch nghi vấn
không hoàn tiền
-55 Số dư tài khoản không đủ để thực
hiện giao dịch này
-99 Lỗi chưa xác định Giao dịch nghi vấn,
không hoàn tiền
-290 Thông tin lệnh nạp tiền hợp lệ.
Đang chờ kết quả xử lý
Giao dịch đang xử lý.
Có thể gọi hàm check
trạng thái để kiểm tra
24. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 24
kết quả giao dịch
-302 Partner không tồn tại hoặc đang
tạm dừng hoạt động
Cho phép hoàn tiền
-304 Dịch vụ này không tồn tại hoặc
đang tạm dừng
Cho phép hoàn tiền
-305 Chữ ký không hợp lệ Cho phép hoàn tiền
-306 Mệnh giá không hợp lệ hoặc đang
tạm dừng
Cho phép hoàn tiền
-307 Tài khoản nạp tiền không tồn tại
hoặc không hợp lệ
Cho phép hoàn tiền
-308 RequesData không hợp lệ Cho phép hoàn tiền
-309 Ngày giao dịch truyền không đúng Cho phép hoàn tiền
-310 Hết hạn mức cho phép sử dụng
dịch vụ này
Cho phép hoàn tiền
-311 RequesData hoặc PartnerCode
không đúng
Cho phép hoàn tiền
-315 Phải truyền CommandType Cho phép hoàn tiền
-316 Phải truyền version Cho phép hoàn tiền
-317 Số lượng thẻ không hợp lệ Cho phép hoàn tiền
-318 ServiceCode không đúng Cho phép hoàn tiền
-320 Hệ thống gián đoạn Cho phép hoàn tiền
-348 Tài khoản bị Block Cho phép hoàn tiên
-350 Tài khoản không tồn tại Cho phép hoàn tiền
-500 Loại thẻ này trong kho hiện đã hết
hoặc tạm ngừng xuất
Cho phép hoàn tiền
-501 Giao dịch không thành công Cho phép hoàn tiền
-502 Không tồn tại giao dịch
-503 Đối tác không đươc thực hiện
chức năng này
-504 Mã giao dịch này đã check quá tối
đa số lần cho phép
-505 Số lần check vượt quá hạn mức
cho phép trong ngày
-509 Giao dịch bị hủy (thất bại)
-600 Quá hạn mức Cho phép hoàn tiền
# Các trường hợp mã lỗi chưa
định nghĩa tường minh
Giao dịch nghi vấn cần
kiểm tra lại, không
hoàn tiền
Lưu ý:
- Thành công: giao dịch đã trừ tiền tại hệ thống VTC Intecom
25. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 25
- Thất bại: giao dịch chưa bị trừ tiền tại hệ thống VTC Intecom
- Nghi vấn: giao dịch chưa xác đinh tại hệ thống VTC Intecom hoặc hệ thống
đối tác không nhận được phản hồi kết quả của giao dịch đã gửi tới hệ thống
VTC Intecom sau một khoảng thời gian nhất định (System Timeout). Đối với
trạng thái giao dịch này, hệ thống 2 bên sẽ giữ nguyên hiện trạng để đối soát
theo quy trình thống nhất giữa 2 bên.
4. Code tham khảo
4.1. Tạo chữ ký bằng RSA
public static string CreateSignRSA(string data, string privateKey)
{
CspParameters _cpsParameter;
RSACryptoServiceProvider rsaCryptoIPT;
_cpsParameter = new CspParameters();
_cpsParameter.Flags = CspProviderFlags.UseMachineKeyStore;
rsaCryptoIPT = new RSACryptoServiceProvider(1024, _cpsParameter);
rsaCryptoIPT.FromXmlString(privateKey);
return
Convert.ToBase64String(rsaCryptoIPT.SignData(Encoding.UTF8.GetBytes (data), new
SHA1CryptoServiceProvider()));
}
4.2. Verify chữ ký bằng RSA
public static bool CheckSignRSA(string data, string sign, string publicKey)
{
try
{
RSACryptoServiceProvider rsacp = new RSACryptoServiceProvider();
rsacp.FromXmlString(publicKey);
return rsacp.VerifyData(Encoding.UTF8.GetBytes(data), "SHA1",
Convert.FromBase64String(sign));
}
catch (Exception ex)
{
NLogLogger.Info(ex.ToString());
return false;
}
}
4.3. Mã hóa bằng thuật toán tripleDES
a, C#
public static string Encrypt(string key, string data)
{
data = data.Trim();
byte[] keydata = Encoding.ASCII.GetBytes(key);
string md5String = BitConverter.ToString(new
MD5CryptoServiceProvider().ComputeHash(keydata)).Replace("-",
"").ToLower();
byte[] tripleDesKey = Encoding.ASCII.GetBytes(md5String.Substring(0,
24));
TripleDES tripdes = TripleDESCryptoServiceProvider.Create();
tripdes.Mode = CipherMode.ECB;
tripdes.Key = tripleDesKey;
26. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 26
tripdes.GenerateIV();
MemoryStream ms = new MemoryStream();
CryptoStream encStream = new CryptoStream(ms,
tripdes.CreateEncryptor(),
CryptoStreamMode.Write);
encStream.Write(Encoding.ASCII.GetBytes(data), 0,
Encoding.ASCII.GetByteCount(data));
encStream.FlushFinalBlock();
byte[] cryptoByte = ms.ToArray();
ms.Close();
encStream.Close();
return Convert.ToBase64String(cryptoByte, 0,
cryptoByte.GetLength(0)).Trim();
}
b. Java
public static String Encrypt(String key,String data) throws Exception
{
Cipher cipher=Cipher.getInstance("TripleDES");
MessageDigest
md5=MessageDigest.getInstance("MD5");
md5.update(key.getBytes(),0,key.length());
String keymd5 = new
BigInteger(1,md5.digest()).toString(16).substring(0,
24); SecretKeySpec keyspec = new
SecretKeySpec(keymd5.getBytes(),"TripleDES");
cipher.init(Cipher.ENCRYPT_MODE,keyspec);
byte[] stringBytes=data.getBytes();
byte[] raw=cipher.doFinal(stringBytes);
BASE64Encoder encoder = new
BASE64Encoder(); String base64 =
encoder.encode(raw);
return base64;
}
c. PHP
<?php
function Encrypt($input, $key_seed){
$input = trim($input);
$block = mcrypt_get_block_size('tripledes', 'ecb');
$len = strlen($input);
$padding = $block - ($len % $block);
$input .= str_repeat(chr($padding),$padding);
// generate a 24 byte key from the md5 of the seed
$key = substr(md5($key_seed),0,24);
$iv_size = mcrypt_get_iv_size(MCRYPT_TRIPLEDES, MCRYPT_MODE_ECB);
27. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 27
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
// encrypt
$encrypted_data = mcrypt_encrypt(MCRYPT_TRIPLEDES, $key,
$input, MCRYPT_MODE_ECB, $iv);
// clean up output and return base64 encoded
return base64_encode($encrypted_data);
} //end function Encrypt()
?>
<?php
4.4. Giải mã bằng thuật toán tripleDES
a. C#
public static string Decrypt(string key, string data)
{
byte[] keydata = Encoding.ASCII.GetBytes(key);
string md5String = BitConverter.ToString(new
MD5CryptoServiceProvider().ComputeHash(keydata)).Replace("-",
"").Replace(" ", "+").ToLower();
byte[] tripleDesKey = Encoding.ASCII.GetBytes(md5String.Substring(0,
24));
TripleDES tripdes = TripleDESCryptoServiceProvider.Create();
tripdes.Mode = CipherMode.ECB;
tripdes.Key = tripleDesKey;
byte[] cryptByte = Convert.FromBase64String(data);
MemoryStream ms = new MemoryStream(cryptByte, 0, cryptByte.Length);
ICryptoTransform cryptoTransform = tripdes.CreateDecryptor();
CryptoStream decStream = new CryptoStream(ms, cryptoTransform,
CryptoStreamMode.Read);
StreamReader read = new StreamReader(decStream);
return (read.ReadToEnd());
}
b. Java
public static String Decrypt(String key,String data) throws Exception
{
Cipher cipher=Cipher.getInstance("TripleDES");
MessageDigest
md5=MessageDigest.getInstance("MD5");
md5.update(key.getBytes(),0,key.length());
String keymd5 = new
BigInteger(1,md5.digest()).toString(16).substring(0
,24); SecretKeySpec keyspec = new
SecretKeySpec(keymd5.getBytes(),"TripleD
ES");
cipher.init(Cipher.DECRYPT_MODE,keyspec);
BASE64Decoder decoder = new BASE64Decoder();
byte[] raw = decoder.decodeBuffer(data);
byte[] stringBytes = cipher.doFinal(raw);
String result = new String(stringBytes);
return result;
}
28. TỔNG CÔNG TY TRUYỀN THÔNG ĐA PHƯƠNG TIỆN VTC
VTC-eBank Page 28
c. PHP
<?php
function Decrypt($input, $key_seed)
{
$input = base64_decode($input);
$key = substr(md5($key_seed),0,24);
$text=mcrypt_decrypt(MCRYPT_TRIPLEDES, $key, $input,
MCRYPT_MODE_ECB,'12345678');
$block = mcrypt_get_block_size('tripledes', 'ecb');
$packing = ord($text{strlen($text) - 1});
if($packing and ($packing < $block)){
for($P = strlen($text) - 1; $P >= strlen($text) - $packing; $P--){
if(ord($text{$P}) != $packing){
$packing = 0;
}
}
}
$text = substr($text,0,strlen($text) - $packing);
return $text;
}
?>