Cách sử dụng Cập nhật mới nhất cho API Marketplace
() translation by (you can also view the original English article)
Các thị trường Envato đang bùng nổ, với hơn 600 nghìn thành viên và hơn 65 nghìn tệp!
Một bổ sung tuyệt vời cho thị trường là API, vốn đang trở nên phổ biến hơn mỗi ngày, nhờ vào các bản cập nhật mới nhất! Các nhà phát triển thị trường tuyệt vời của chúng tôi liên tục lắng nghe phản hồi của cộng đồng và đã thêm một số tính năng ngọt ngào vào bản phát hành cạnh!
Hãy chắc chắn kiểm tra một số ứng dụng có sẵn trên web - tất cả đều được API Envato hỗ trợ.
Hôm nay, chúng ta sẽ xem xét các tính năng API mới nhất! Tham gia cùng tôi sau khi nhảy!
API là gì?
Giao diện lập trình ứng dụng (API) là một bộ quy tắc và đặc tả cụ thể mà chương trình phần mềm có thể theo dõi để truy cập và sử dụng các dịch vụ và tài nguyên được cung cấp bởi một chương trình phần mềm cụ thể khác. Nó phục vụ như một giao diện giữa các chương trình phần mềm khác nhau và tạo điều kiện cho sự tương tác của chúng, tương tự như cách giao diện người dùng tạo điều kiện cho sự tương tác giữa con người và máy tính.
Web API
API Web cho phép kết hợp nhiều dịch vụ vào các ứng dụng mới, được gọi là mashup.
Khi được sử dụng trong ngữ cảnh phát triển web, một API thường là một tập hợp các thông báo yêu cầu Giao thức Truyền Siêu văn bản (HTTP) được định nghĩa, cùng với định nghĩa về cấu trúc của các thông điệp phản hồi, thường là trong Ngôn ngữ Đánh dấu Mở rộng (XML) hoặc JavaScript Định dạng đối tượng (JSON).
Trong khi "Web API" hầu như là đồng nghĩa của câu lạc bộ dịch vụ web, xu hướng gần đây đã được di chuyển ra khỏi đơn giản đối tượng truy cập giao thức (SOAP) dựa trên dịch vụ, hướng tới trực tiếp hơn Representational nhà nước chuyển (còn lại) theo phong cách truyền thông. Web API cho phép cho sự kết hợp của nhiều dịch vụ vào các ứng dụng mới được gọi là mashup.
API được sử dụng nhiều?
Hầu hết các nhà phát triển sẽ biết câu trả lời cho câu hỏi này, nhưng đối với những người khác, câu trả lời là một CÓ.
API được tìm thấy ở mọi nơi; chúng phổ biến một phần trong lĩnh vực mạng xã hội! Hầu hết các mạng lớn, bao gồm Twitter và Facebook, cung cấp các API để tương tác với dịch vụ của họ.
Tính năng API mới
Trong hướng dẫn này, chúng tôi sẽ chỉ xem xét các tính năng API mới. Nếu bạn muốn tìm hiểu thêm về các tính năng API hiện có, hãy nhớ xem hướng dẫn của Drew về chủ đề này.
Công cộng
- mục - Chi tiết cho một mục duy nhất, được chỉ định bởi ID đã cho.
- item-price - Trả lại giấy phép và giá có sẵn cho ID mặt hàng đã cho.
- user-items-by-site - Hiển thị số lượng các mục mà tác giả đã bán trên mỗi trang. Yêu cầu tên người dùng, ví dụ như collis.
Riêng tư
- verify-purchase - Chi tiết mua hàng. Yêu cầu mã mua hàng, ví dụ: xác minh mua: 550e8400-e29b-41d4-a716-446655440000.
- download-purchase - URL để tải xuống mua hàng. Yêu cầu mã mua hàng, ví dụ: mua hàng tải xuống: 550e8400-e29b-41d4-a716-446655440000
Yêu cầu



Để bắt đầu với API, bạn sẽ cần một tài khoản Envato Marketplace và một khóa API.
Bạn có thể truy xuất khóa API của mình bằng cách truy cập trang cài đặt tài khoản của bạn.



Chúng tôi sẽ sử dụng một hàm PHP, được gọi là json_decode; điều này cho phép chúng tôi truy xuất dữ liệu API và chuyển đổi nó thành một mảng. Hàm này được bao gồm trong PHP 5> = 5.2.0.
Có tất cả mọi thứ? Băt đâu nao!
Bước 1 - Xây dựng lớp học của chúng tôi
Hãy bắt đầu bằng cách xây dựng một lớp PHP đơn giản, nó sẽ cho phép chúng ta lấy dữ liệu từ API.
Tạo một thư mục dự án mới và tạo một thư mục khác được gọi là các lớp, để giữ mọi thứ được sắp xếp. Bên trong thư mục này, thêm một tệp PHP mới có tên là envato.api.class.php
Đầu tiên, chúng ta sẽ xây dựng bộ xương cơ bản của lớp của chúng ta:
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
* Envato API
|
5 |
*
|
6 |
* An PHP class to interact with the Envato Marketplace API
|
7 |
*
|
8 |
* @author Philo Hermans
|
9 |
* @copyright Copyright (c) 2011 NETTUTS+
|
10 |
* @link https://net.tutsplus.com
|
11 |
*/
|
12 |
|
13 |
/**
|
14 |
* envatoAPI
|
15 |
*
|
16 |
* Create our new class called "envatoAPI"
|
17 |
*/
|
18 |
class envatoAPI{ |
19 |
|
20 |
}
|
21 |
|
22 |
?>
|
Bước 2 - Biến toàn cục
Chúng tôi cần một vài biến trong lớp học của chúng tôi để làm cho nó linh hoạt. Để tìm ra biến nào chúng ta cần, chúng ta phải xem xét định dạng url API.
- Công khai - http://marketplace.envato.com/api/edge/set.json
- Riêng tư - http://marketplace.envato.com/api/edge/username/api-key/set.json
Như bạn thấy, chúng ta cần tổng cộng bốn biến:
- Url API
- Bộ
- Tên người dùng
- Mã API
Hãy tạo các biến riêng tư như sau:
1 |
class envatoAPI{ |
2 |
|
3 |
private $api_url = 'http://marketplace.envato.com/api/edge/'; // Default URL |
4 |
private $api_set; // This will hold the chosen API set like "user-items-by-site" |
5 |
private $username; // The username of the author only needed to access the private sets |
6 |
private $api_key; // The api key of the author only needed to access the private sets |
7 |
|
8 |
}
|
Bước 3 - Phương pháp Setter & Getter
Tôi thích sử dụng các phương thức setter và getter khi xây dựng các lớp trong PHP. Vậy chính xác những phương pháp này là gì? Tôi đã thực hiện một ví dụ nhỏ dưới đây:
1 |
$API = new envatoAPI(); |
2 |
|
3 |
$API->api_url = 'http://nettuts.com'; |
4 |
echo $API->api_url ; |
Mã ở trên sẽ không hoạt động và phải trả lại lỗi sau:
1 |
Fatal error: Cannot access private property envatoAPI::$api_url |
Bởi vì biến được đặt thành riêng tư, chúng tôi không thể truy cập hoặc thay đổi nó. Nếu chúng ta cần thay đổi url API mà không cần chỉnh sửa tệp lớp, chúng ta có thể làm điều gì đó dọc theo các dòng:
1 |
$API = new envatoAPI(); |
2 |
|
3 |
$API->set_api_url('http://nettuts.com'); |
4 |
echo $API->get_api_url(); |
Bây giờ chuyển trở lại lớp PHP và thêm hàm, set_api_url.
1 |
/**
|
2 |
* set_api_url()
|
3 |
*
|
4 |
* Set the API URL
|
5 |
*
|
6 |
* @access public
|
7 |
* @param string
|
8 |
* @return void
|
9 |
*/
|
10 |
public function set_api_url($url) |
11 |
{
|
12 |
$this->api_url = $url; |
13 |
}
|
Vì hàm này nằm trong lớp của chúng ta, chúng ta có thể truy cập và thay đổi biến api_url riêng. Bây giờ trong hướng dẫn này, chúng ta không thực sự cần các getters, nhưng chúng ta hãy tạo một cái để cung cấp cho bạn một sự hiểu biết tốt hơn về khái niệm.
1 |
/**
|
2 |
* get_api_url()
|
3 |
*
|
4 |
* Return the API URL
|
5 |
*
|
6 |
* @access public
|
7 |
* @return string
|
8 |
*/
|
9 |
public function get_api_url() |
10 |
{
|
11 |
return $this->api_url; |
12 |
}
|
Như bạn có thể suy ra tại thời điểm này, chúng ta không cần một hàm get cho khóa API chẳng hạn. Điều này làm cho lớp của chúng tôi an toàn hơn.
Bước 4 - Hoàn thành phần còn lại của người định cư
Chúng tôi đã hoàn thành một setter, do đó, có ba còn lại và tất cả đều có cấu trúc tương tự.
Đặt tên người dùng
1 |
/**
|
2 |
* set_username()
|
3 |
*
|
4 |
* Set the Username
|
5 |
*
|
6 |
* @access public
|
7 |
* @param string
|
8 |
* @return void
|
9 |
*/
|
10 |
public function set_username($username) |
11 |
{
|
12 |
$this->username = $username; |
13 |
}
|
Đặt khóa API
1 |
/**
|
2 |
* set_api_key()
|
3 |
*
|
4 |
* Set the API key
|
5 |
*
|
6 |
* @access public
|
7 |
* @param string
|
8 |
* @return void
|
9 |
*/
|
10 |
public function set_api_key($api_key) |
11 |
{
|
12 |
$this->api_key = $api_key; |
13 |
}
|
Đặt bộ API
1 |
/**
|
2 |
* set_api_set()
|
3 |
*
|
4 |
* Set the API set
|
5 |
*
|
6 |
* @access public
|
7 |
* @param string
|
8 |
* @return void
|
9 |
*/
|
10 |
public function set_api_set($api_set) |
11 |
{
|
12 |
$this->api_set = $api_set; |
13 |
}
|
Chúng tôi hiện có thể đặt tất cả các biến như sau:
1 |
<?php
|
2 |
|
3 |
include('classes/envato.api.class.php'); |
4 |
|
5 |
$API = new envatoAPI(); |
6 |
|
7 |
// $API->set_api_url(); - We don't need to change the API URL
|
8 |
// $API->set_api_key('ahdio270410ayap20hkdooxaadht5s'); - We only need to set the API key to fetch data from the private set
|
9 |
//$API->set_username('JohnDoe'); // - We only need to set the Envato Marketplace Username to fetch data from the private set
|
10 |
$API->set_api_set('popular:codecanyon'); // Set the API set to request |
11 |
|
12 |
?>
|
Bước 4 - Yêu cầu dữ liệu
Hãy xây dựng một hàm sẽ yêu cầu dữ liệu từ API của Envato Marketplace. Chúng tôi bắt đầu bằng cách tạo ra một chức năng công cộng mới được gọi là yêu cầu.
1 |
/**
|
2 |
* request()
|
3 |
*
|
4 |
* Request data from the API
|
5 |
*
|
6 |
* @access public
|
7 |
* @param void
|
8 |
* @return array
|
9 |
*/
|
10 |
public function request() |
11 |
{
|
12 |
}
|
Chúng ta có thể sử dụng kỹ thuật tương tự được sử dụng trong hướng dẫn trước. Để yêu cầu dữ liệu từ API, chúng tôi có thể sử dụng cURL. Hãy bắt đầu bằng cách xây dựng URL API - nếu tên người dùng và khóa API được đặt, chúng tôi yêu cầu một url khác.
1 |
if(!empty($this->username) && !empty($this->api_key)) |
2 |
{
|
3 |
// Build the private url
|
4 |
$this->api_url .= $this->username . '/'.$this->api_key.'/'.$this->api_set . '.json'; // Sample: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json |
5 |
}
|
6 |
else
|
7 |
{
|
8 |
// Build the public url
|
9 |
$this->api_url .= $this->api_set . '.json'; // Sample: http://marketplace.envato.com/api/edge/popular:codecanyon.json |
10 |
}
|
Chúng tôi gửi yêu cầu tới API bằng cách sử dụng cURL như sau:
1 |
$ch = curl_init($this->api_url); // Initialize a cURL session & set the API URL |
2 |
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //The number of seconds to wait while trying to connect |
3 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the transfer as a string instead of outputting it out directly. |
4 |
$ch_data = curl_exec($ch); // Perform a cURL session |
5 |
curl_close($ch); //Close a cURL session |
Bây giờ chúng ta có một biến, được gọi là $ ch_data có chứa một chuỗi định dạng JSON. Trước khi chúng ta có thể làm điều gì đó với điều này, chúng ta cần giải mã nó thành một mảng.
1 |
// Check if the variable contains data
|
2 |
if(!empty($ch_data)) |
3 |
{
|
4 |
return json_decode($ch_data, true); // Decode the requested data into an array |
5 |
}
|
6 |
else
|
7 |
{
|
8 |
return('We are unable to retrieve any information from the API.'); // Return error message |
9 |
}
|
Hàm toàn bộ trông giống như sau:
1 |
public function request() |
2 |
{
|
3 |
|
4 |
if(!empty($this->username) && !empty($this->api_key)) |
5 |
{
|
6 |
// Build the private url
|
7 |
$this->api_url .= $this->username . '/'.$this->api_key.'/'.$this->api_set . '.json'; |
8 |
}
|
9 |
else
|
10 |
{
|
11 |
// Build the public url
|
12 |
$this->api_url .= $this->api_set . '.json'; |
13 |
}
|
14 |
|
15 |
$ch = curl_init($this->api_url); // Initialize a cURL session & set the API URL |
16 |
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //The number of seconds to wait while trying to connect |
17 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the transfer as a string instead of outputting it out directly. |
18 |
$ch_data = curl_exec($ch); // Perform a cURL session |
19 |
curl_close($ch); //Close a cURL session |
20 |
|
21 |
// Check if the variable contains data
|
22 |
if(!empty($ch_data)) |
23 |
{
|
24 |
return json_decode($ch_data, true); // Decode the requested data into an array |
25 |
}
|
26 |
else
|
27 |
{
|
28 |
return('We are unable to retrieve any information from the API.'); // Return error message |
29 |
}
|
30 |
|
31 |
}
|
Bước 5 - Kiểm tra chức năng
Hãy thử lớp của chúng tôi và yêu cầu một số dữ liệu từ API:
1 |
<?php
|
2 |
include('classes/envato.api.class.php'); |
3 |
|
4 |
$API = new envatoAPI(); |
5 |
|
6 |
//$API->set_api_url();
|
7 |
//$API->set_api_key('ahdio270410ayap20hkdooxaadht5s');
|
8 |
//$API->set_username('JohnDoe'); // Envato username
|
9 |
$API->set_api_set('popular:codecanyon'); // Set the API set to request |
10 |
|
11 |
echo '<pre>'; |
12 |
print_r( $API->request() ); |
13 |
echo '</pre>'; |
14 |
?>
|



Bước 6 - Kiểm tra các tính năng mới của API công khai
Bây giờ lớp của chúng tôi đang hoạt động, đã đến lúc xây dựng một số ví dụ với các tính năng API mới.
Mục
Để yêu cầu thông tin về một mặt hàng trên thị trường, chúng tôi phải cung cấp API có ID mặt hàng. Bạn có thể tìm thấy ID mục trong URL của mục thị trường.



Bây giờ chúng tôi có ID của chúng tôi, hãy yêu cầu thông tin mục:
1 |
<?php
|
2 |
|
3 |
include('classes/envato.api.class.php'); |
4 |
|
5 |
$API = new envatoAPI(); |
6 |
$API->set_api_set('item:147510'); // Set the API set to request |
7 |
|
8 |
echo '<pre>'; |
9 |
print_r( $API->request() ); |
10 |
echo '</pre>'; |
11 |
?>
|
Các dữ liệu sau đây phải được trả về:
1 |
Array
|
2 |
(
|
3 |
[item] => Array |
4 |
(
|
5 |
[sales] => 16 |
6 |
[rating] => 5 |
7 |
[cost] => 25.00 |
8 |
[user] => Philo01 |
9 |
[uploaded_on] => Tue Dec 21 03:13:24 +1100 2010 |
10 |
[url] => https://codecanyon.net/item/wordpress-car-dealer/147510 |
11 |
[live_preview_url] => http://s3.envato.com/files/1410781/1_preview.__large_preview.jpg |
12 |
[thumbnail] => http://s3.envato.com/files/1410780/Car_dealer_avatar.jpg |
13 |
[tags] => easy to use, easy to setup, car inventory, car dealer, dealership, 2 build in sliders, native post type & taxonomies, over 35 settings, list all your cars, inventory system |
14 |
[id] => 147510 |
15 |
[item] => WordPress Car Dealer |
16 |
)
|
17 |
|
18 |
)
|
Bây giờ chúng ta hãy xây dựng một trang đơn giản sẽ hiển thị thông tin ở trên theo cách mà người dùng khác sẽ hiểu nó. Đầu tiên, chúng ta cần gán dữ liệu API cho một biến:
1 |
$API = new envatoAPI(); |
2 |
$API->set_api_set('item:147510'); // Set the API set to request |
3 |
|
4 |
$data = $API->request(); |
Bây giờ chúng tôi có thể hiển thị dữ liệu từ API theo định dạng sau: $ data ['item'] ['key'].
1 |
<?php
|
2 |
|
3 |
include('classes/envato.api.class.php'); |
4 |
|
5 |
$API = new envatoAPI(); |
6 |
$API->set_api_set('item:147510'); // Set the API set to request |
7 |
|
8 |
$data = $API->request(); |
9 |
|
10 |
?>
|
11 |
|
12 |
<h2><a href="<?php echo $data['item']['url']; ?>"><?php echo $data['item']['item']; ?></a></h2> |
13 |
<img src="<?php echo $data['item']['live_preview_url']; ?>" alt="" /> |
14 |
<p>By <?php echo $data['item']['user']; ?>, available for only <?php echo $data['item']['cost']; ?>!</p> |
HTML sau khi PHP được phân tích cú pháp:
1 |
<h2><a href="https://codecanyon.net/item/wordpress-car-dealer/147510">WordPress Car Dealer</a></h2> |
2 |
<img src="http://s3.envato.com/files/1410781/1_preview.__large_preview.jpg" alt="" /> |
3 |
<p>By Philo01, available for only 25.00!</p> |



giá cả mặt hàng
Thay vì tạo yêu cầu API mới để tìm hiểu thêm về giá và giấy phép của mặt hàng, chúng tôi có thể chỉ cần thêm nó vào bộ API hiện tại.
1 |
$API = new envatoAPI(); |
2 |
$API->set_api_set('item:147510+item-prices:147510'); // Set the API set to request |
3 |
|
4 |
$data = $API->request(); |
Phản hồi của API dưới đây:
1 |
[item-prices] => Array |
2 |
(
|
3 |
[0] => Array |
4 |
(
|
5 |
[licence] => Regular Licence |
6 |
[price] => 25.00 |
7 |
)
|
8 |
|
9 |
[1] => Array |
10 |
(
|
11 |
[licence] => Extended License |
12 |
[price] => 175.00 |
13 |
)
|
14 |
|
15 |
)
|
Bây giờ chúng ta có thể sử dụng thông tin trả về này trong trang mục của chúng ta.
1 |
<h2><a href="<?php echo $data['item']['url']; ?>"><?php echo $data['item']['item']; ?></a></h2> |
2 |
<img src="<?php echo $data['item']['live_preview_url']; ?>" alt="" /> |
3 |
<p>By <?php echo $data['item']['user']; ?></p> |
4 |
|
5 |
<p><strong>Pricing:</strong></p> |
6 |
<ul>
|
7 |
<?php
|
8 |
// Loop trough all the licenses & prices
|
9 |
foreach( $data['item-prices'] as $p) |
10 |
{
|
11 |
echo '<li>' . $p['licence'] . ' - $' . $p['price'] . '</li>'; |
12 |
}
|
13 |
?>
|
14 |
</ul>
|



người dùng theo từng trang
Để hoàn thành nó, chúng ta sẽ nối thêm số lượng các mục mà người dùng có. Chúng ta chỉ cần thêm nó vào bộ API.
1 |
$API->set_api_set('item:147510+item-prices:147510+user-items-by-site:Philo01'); |
Và phản hồi:
1 |
[user-items-by-site] => Array |
2 |
(
|
3 |
[0] => Array |
4 |
(
|
5 |
[site] => ThemeForest |
6 |
[items] => 1 |
7 |
)
|
8 |
|
9 |
[1] => Array |
10 |
(
|
11 |
[site] => CodeCanyon |
12 |
[items] => 5 |
13 |
)
|
14 |
|
15 |
)
|
Hãy thêm thông tin này vào trang của chúng tôi.
1 |
<h2><a href="<?php echo $data['item']['url']; ?>"><?php echo $data['item']['item']; ?></a></h2> |
2 |
<img src="<?php echo $data['item']['live_preview_url']; ?>" alt="" /> |
3 |
<p>By <?php echo $data['item']['user']; ?></p> |
4 |
|
5 |
<p><strong>Pricing:</strong></p> |
6 |
<ul>
|
7 |
<?php
|
8 |
// Loop trough all the licenses & prices
|
9 |
foreach( $data['item-prices'] as $p) |
10 |
{
|
11 |
echo '<li>' . $p['licence'] . ' - $' . $p['price'] . '</li>'; |
12 |
}
|
13 |
?>
|
14 |
</ul>
|
15 |
|
16 |
<p><strong><?php echo $data['item']['user']; ?> has more items at the Envato Marketplace</strong></p> |
17 |
<ul>
|
18 |
<?php
|
19 |
// Loop trough all the marketplaces
|
20 |
foreach( $data['user-items-by-site'] as $p) |
21 |
{
|
22 |
echo '<li>' . $p['items'] . ' at ' . $p['site'] . '</li>'; |
23 |
}
|
24 |
?>
|
25 |
</ul>
|



Bước 7 - Kiểm tra các tính năng mới của API riêng tư
Để sử dụng các tính năng API riêng tư, bạn cần có tài khoản thị trường và mã mua hàng từ một trong các khách hàng của mình. Đầu tiên chúng ta cần xác định thông tin này.
1 |
$API->set_api_key('ahdio270410ayap20hkdooxaadht5s'); |
2 |
$API->set_username('JohnDoe'); |
xác minh mua hàng
Điều này sẽ tự động thay đổi URL API từ chế độ công khai thành bộ riêng tư. Để làm cho mọi thứ năng động hơn một chút, chúng tôi có thể tạo một biểu mẫu nhỏ để người dùng có thể nhập một số thông tin để xác minh giao dịch mua của mình.
Lưu ý: Khi xây dựng trang web của riêng bạn, không sử dụng kiểu nội tuyến như thế này!
1 |
<style>
|
2 |
form{ |
3 |
background: #f8f8f8; |
4 |
width: 300px; |
5 |
border: 1px solid #e2e2e2; |
6 |
}
|
7 |
form fieldset{ |
8 |
border: 0; |
9 |
}
|
10 |
form label{ |
11 |
display: block; |
12 |
padding: 3px; |
13 |
}
|
14 |
form input[type=text]{ |
15 |
padding: 3px; |
16 |
border: 1px solid #d7d7d7; |
17 |
}
|
18 |
</style>
|
19 |
|
20 |
<h2>Verify Purchase</h2> |
21 |
|
22 |
<form action="" method="post"> |
23 |
<fieldset>
|
24 |
<p><label>Marketplace Username:</label> |
25 |
<input type="text" name="username" value="" /></p> |
26 |
|
27 |
<p><label>Item ID:</label> |
28 |
<input type="text" name="item_id" value="" /></p> |
29 |
|
30 |
<p><label>Purchase code:</label> |
31 |
<input type="text" name="purchase_code" value="" /></p> |
32 |
|
33 |
<p><input type="submit" name="submit" value="Verify" /></p> |
34 |
</fieldset>
|
35 |
</form>
|
Chúng ta có một form cơ bản như sau:

Bây giờ chúng ta hãy vào phần PHP.
Đầu tiên, chúng ta cần kiểm tra xem biểu mẫu đã được gửi với các trường cần thiết chưa. Nếu bạn đang sử dụng điều này trên một trang web trực tiếp, hãy nhớ thêm xác thực khác để làm cho mọi thứ an toàn hơn.
1 |
if(isset($_POST['submit'])) |
2 |
{
|
3 |
|
4 |
// Assign data to variables
|
5 |
$username = $_POST['username']; |
6 |
$item_id = $_POST['item_id']; |
7 |
$purchase_code = $_POST['purchase_code']; |
8 |
|
9 |
// Check if all fields are filled in
|
10 |
if(!empty($username) && !empty($item_id) && !empty($purchase_code)) |
11 |
{
|
12 |
// API Request
|
13 |
}
|
14 |
}
|
Và bây giờ là yêu cầu API.
1 |
if(isset($_POST['submit'])) |
2 |
{
|
3 |
|
4 |
// Assign data to variables
|
5 |
$username = $_POST['username']; |
6 |
$item_id = $_POST['item_id']; |
7 |
$purchase_code = $_POST['purchase_code']; |
8 |
|
9 |
// Check if all fields are filled in
|
10 |
if(!empty($username) && !empty($item_id) && !empty($purchase_code)) |
11 |
{
|
12 |
$API = new envatoAPI(); |
13 |
$API->set_api_key('ahdio270410ayap20hkdooxaadht5s'); |
14 |
$API->set_username('JohnDoe'); |
15 |
$API->set_api_set('verify-purchase:' . $purchase_code); |
16 |
|
17 |
$data = $API->request(); |
18 |
}
|
19 |
}
|
Một phản hồi API hợp lệ sẽ giống như sau:
1 |
Array
|
2 |
(
|
3 |
[verify-purchase] => Array |
4 |
(
|
5 |
[licence] => Regular Licence |
6 |
[item_id] => 147510 |
7 |
[buyer] => EnvatoDemo |
8 |
[created_at] => Thu Dec 31 08:28:03 +1100 2009 |
9 |
[item_name] => WordPress Car Dealer |
10 |
)
|
11 |
|
12 |
)
|
Nếu yêu cầu không hợp lệ, API sẽ trả về một mảng trống. Nếu chúng tôi nhận được phản hồi từ API, điều đó có nghĩa là mã mua hàng là chính xác. Để đảm bảo an toàn hơn, chúng tôi sẽ khớp nó với id và tên người dùng đã nhập.
1 |
if(isset($_POST['submit'])) |
2 |
{
|
3 |
|
4 |
// Assign data to variables
|
5 |
$username = $_POST['username']; |
6 |
$item_id = $_POST['item_id']; |
7 |
$purchase_code = $_POST['purchase_code']; |
8 |
|
9 |
// Check if all fields are filled in
|
10 |
if(!empty($username) && !empty($item_id) && !empty($purchase_code)) |
11 |
{
|
12 |
$API = new envatoAPI(); |
13 |
$API->set_api_key('ahdio270410ayap20hkdooxaadht5s'); |
14 |
$API->set_username('JohnDoe'); |
15 |
$API->set_api_set('verify-purchase:' . $purchase_code); |
16 |
|
17 |
$data = $API->request(); |
18 |
|
19 |
if(!empty($data)) |
20 |
{
|
21 |
// We got a valid API response let's match the item id and the username
|
22 |
if($data['verify-purchase']['item_id'] == $item_id && $data['verify-purchase']['buyer'] == $username) |
23 |
{
|
24 |
// Everything seems to be correct! Purchase verified!
|
25 |
// Show some info like purchase date and licence
|
26 |
echo '<p>You have purchased the item on ' . $data['verify-purchase']['created_at'] . ' with the ' . $data['verify-purchase']['licence'] . '!</p>'; |
27 |
}
|
28 |
|
29 |
}
|
30 |
else{ |
31 |
// Response from the API was empty, return error
|
32 |
echo '<p>Sorry, we are unable to verify your purchase.</p>'; |
33 |
}
|
34 |
|
35 |
}
|
36 |
}
|



tải xuống mua
Bộ mua hàng tải xuống cho phép bạn tải xuống các giao dịch mua của riêng bạn mà không cần truy cập vào thị trường.
Lưu ý: Giao dịch mua tải xuống chỉ hoạt động khi bạn đang sử dụng khóa API của chính mình và mã mua hàng của sản phẩm bạn đã mua.
1 |
<form action="" method="post"> |
2 |
<fieldset>
|
3 |
<p><label>Marketplace Username:</label> |
4 |
<input type="text" name="username" value="" /></p> |
5 |
|
6 |
<p><label>Item ID:</label> |
7 |
<input type="text" name="item_id" value="" /></p> |
8 |
|
9 |
<p><label>Purchase code:</label> |
10 |
<input type="text" name="purchase_code" value="" /></p> |
11 |
|
12 |
<p><input type="checkbox" name="download" value="1" /> Download Item</p> |
13 |
|
14 |
<p><input type="submit" name="submit" value="Verify" /></p> |
15 |
</fieldset>
|
16 |
</form>
|
Bây giờ chúng ta đã có hộp kiểm của chúng ta, chúng ta hãy thực hiện một số thay đổi cho quá trình xác minh.
Chúng ta sẽ bắt đầu bằng cách tạo một biến mới.
1 |
// Assign data to variables
|
2 |
$username = $_POST['username']; |
3 |
$item_id = $_POST['item_id']; |
4 |
$purchase_code = $_POST['purchase_code']; |
5 |
$download = (isset($_POST['download'])) ? $_POST['download'] : ''; |
Chúng tôi cũng cần thực hiện một số thay đổi đối với mã còn lại:
1 |
if(isset($_POST['submit'])) |
2 |
{
|
3 |
|
4 |
// Assign data to variables
|
5 |
$username = $_POST['username']; |
6 |
$item_id = $_POST['item_id']; |
7 |
$purchase_code = $_POST['purchase_code']; |
8 |
$download = (isset($_POST['download'])) ? $_POST['download'] : ''; |
9 |
|
10 |
// Check if all fields are filled in
|
11 |
if(!empty($username) && !empty($item_id) && !empty($purchase_code)) |
12 |
{
|
13 |
$API = new envatoAPI(); |
14 |
$API->set_api_key('ahdio270410ayap20hkdooxaadht5s'); |
15 |
$API->set_username('JohnDoe'); |
16 |
|
17 |
// If download is checked request the download-purchase set
|
18 |
if(!empty($download)) |
19 |
{
|
20 |
$API->set_api_set('download-purchase:' . $purchase_code); |
21 |
$data = $API->request(); |
22 |
|
23 |
// Set the header location to the download URL provided by the API
|
24 |
header("Location: " . $data['download-purchase']['download_url']); |
25 |
}
|
26 |
else
|
27 |
{
|
28 |
|
29 |
// The download checkbox was not checked so verify the purchase
|
30 |
$API->set_api_set('verify-purchase:' . $purchase_code); |
31 |
$data = $API->request(); |
32 |
|
33 |
if(!empty($data)) |
34 |
{
|
35 |
// We got a valid API response let's match the item id and the username
|
36 |
if($data['verify-purchase']['item_id'] == $item_id && $data['verify-purchase']['buyer'] == $username) |
37 |
{
|
38 |
|
39 |
// Everything seems to be correct! Purchase verified!
|
40 |
// Show some info like purchase date and licence
|
41 |
echo '<p>You have purchased the item on ' . $data['verify-purchase']['created_at'] . ' with the ' . $data['verify-purchase']['licence'] . '!</p>'; |
42 |
}
|
43 |
|
44 |
}
|
45 |
else
|
46 |
{
|
47 |
// Response from the API was empty, return error
|
48 |
echo '<p>Sorry, we are unable to verify your purchase.</p>'; |
49 |
}
|
50 |
}
|
51 |
|
52 |
}
|
53 |
}
|
Với những thay đổi đó, phản hồi sẽ như sau:
1 |
Array
|
2 |
(
|
3 |
[download-purchase] => Array |
4 |
(
|
5 |
[download_url] => http://download/ourfile.zip?AWSAccessKeyId=12345&Expires=6789&Signature=HAoYF962%53faf |
6 |
)
|
7 |
|
8 |
)
|
Tổng kết
Tôi hy vọng bạn đã học được một ít về marketplace API của Envato. Nếu vậy, hãy vận dụng kiến thức này và xây dựng vài ứng dụng tuyệt vời! Cảm ơn đã đọc bài viết, và hãy cho chúng tôi biết nếu bạn có bất kỳ câu hỏi hoặc điều lo ngại gì.