Advertisement
  1. Code
  2. Web Development

Cách sử dụng Cập nhật mới nhất cho API Marketplace

Scroll to top
Read Time: 20 min

() 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

Tutorial imageTutorial imageTutorial image

Để 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.

Tutorial imageTutorial imageTutorial image

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
?>
Tutorial imageTutorial imageTutorial image

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.

Tutorial imageTutorial imageTutorial image

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>
Tutorial imageTutorial imageTutorial image

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>
Tutorial imageTutorial imageTutorial image

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>
Tutorial imageTutorial imageTutorial image

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:

Tutorial image

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
}
Tutorial imageTutorial imageTutorial image

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ì.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.