2012-07-11 23 views
6

Đây là lần đầu tiên tôi triển khai thanh toán trong ứng dụng trong ứng dụng Android và tôi đã lấy hầu hết mã ngay từ guideline và mọi thứ đều hoàn toàn bị mất. Tôi đã nghĩ đến việc hoàn lại tiền. Ứng dụng ví dụ đã hoàn tiền được triển khai, nhưng theo cách kỳ lạ! Hoàn nhận được trên ứng dụng như mua nhưng với tình trạng hoàn mà là hoàn toàn dễ hiểu nhưng nguồn gốc trông như thế này:Hoàn tiền thanh toán trong ứng dụng Android

 // Count the number of times the product was purchased 
     while (cursor.moveToNext()) { 
      int stateIndex = cursor.getInt(2); 
      PurchaseState state = PurchaseState.valueOf(stateIndex); 
      // Note that a refunded purchase is treated as a purchase. Such 
      // a friendly refund policy is nice for the user. 
      if (state == PurchaseState.PURCHASED || state == PurchaseState.REFUNDED) { 
       quantity += 1; 
      } 
     } 

     // Update the "purchased items" table 
     updatePurchasedItem(productId, quantity); 

mục bổ sung của nó ngay cả khi nó đã hoàn và tôi đã không có ý tưởng tại sao điều này? Mục hoàn lại có id đặc biệt hoặc tôi thiếu gì không? Tôi chỉ thử điều này với các sản phẩm thử nghiệm nên tôi không biết.

phương pháp updatePurchasedItem loại bỏ entry từ bảng nếu số lượng là 0 mà dường như hoàn toàn đúng, vì vậy tôi đã thay đổi mã của tôi để này

 while (cursor.moveToNext()) { 
      int stateIndex = cursor.getInt(2); 
      PurchaseState state = PurchaseState.valueOf(stateIndex); 
      // Note that a refunded purchase is treated as a purchase. Such 
      // a friendly refund policy is nice for the user. 
      if(Consts.DEBUG) 
       Log.v(TAG, state == PurchaseState.PURCHASED ? "purchase" : "refund"); 

      if (state == PurchaseState.PURCHASED) { 
       quantity += 1; 
      } else if(state == PurchaseState.REFUNDED) { 
       quantity = 0; 
      } 
     } 

     // Update the "purchased items" table 
     updatePurchasedItem(productId, quantity); 

nhưng tôi nghi ngờ sẽ có sai mã trong ứng dụng ví dụ vì vậy tôi hoàn toàn không chắc chắn nếu tôi làm đúng!

Tôi nên xử lý điều này như thế nào? Làm ơn giúp tôi!

+0

Nó chỉ có thể là một lỗi. Biến số lượng có đo tổng số lần mua hàng của một loại mặt hàng hay chỉ tất cả các giao dịch mua (kể cả loại 'hoàn tiền')? Tôi sẽ không ngạc nhiên nếu đó là một lỗi, vì ví dụ đăng ký tồn tại trên trang web dành cho nhà phát triển Android không hoạt động mà không có tinh chỉnh. – BDFun

+0

Số lượng là số lượng mặt hàng đã mua vào thời điểm đó (tôi không nghĩ rằng thậm chí có thể mua nhiều hơn một mặt hàng cùng một lúc), và vì một số lý do nó tăng số lượng ngay cả khi mặt hàng được hoàn lại. updatePurchasedItem loại bỏ mục nhập nếu nó nhận được sản phẩm với số lượng là 0, nghĩa vụ phải cho biết hoàn lại tiền theo như tôi biết vì nó không sử dụng dữ liệu trạng thái ở bất kỳ nơi nào khác. Bạn có thể xem ví dụ tại đây http://developer.android.com/guide/google/play/billing/billing_integrate.html#billing-download – Ruuhkis

Trả lời

5

Bảng lịch sử có một mục nhập duy nhất cho mỗi lần mua. Điều này có nghĩa là giao dịch mua sau này sẽ được hoàn lại sau khi hoàn lại tiền, một bản ghi lịch sử duy nhất cho sản phẩm có trạng thái "được hoàn tiền".

Khi tính số lần mua hàng, trạng thái "Đã hoàn lại tiền" cho biết mặt hàng đã được mua. Sau đó, nhà phát triển sẽ quyết định liệu người dùng có quyền truy cập vào các sản phẩm được hoàn tiền hay không. (Có một ví dụ trên trang web này của nhà phát triển muốn hoàn lại tiền mua hàng được thực hiện bởi những người đã đóng góp tiền và muốn cho phép họ tiếp tục sử dụng sản phẩm).

Nếu bạn không muốn hoàn tiền, bạn nên thay đổi mã của mình để thêm số lượng để mua hàng, nhưng không phải làm gì để được hoàn tiền. (Không đặt số lượng bằng không).

Trong các sản phẩm ứng dụng đi kèm trong 3 giống:

  1. mục Managed: Google không cho phép để mua sản phẩm đó nhiều hơn một lần. Tổng số lượng có thể thêm tối đa bằng không hoặc chỉ một.

  2. Mục không được quản lý: Người dùng có thể mua các sản phẩm đó nhiều lần. Tổng số lượng có thể bằng không hoặc nhiều hơn

  3. Đăng ký: Giống như các mục được quản lý.

+0

Cảm ơn bạn đã trả lời rõ ràng! – Ruuhkis

Các vấn đề liên quan