關於Apple支付productID類型驗證分析

Apple中的productID類型包括:消耗型項目、非消耗型項目、自動續期訂閱、非自動續期訂閱項目。

消耗型項目的驗證:

1、客戶端發起Apple支付玩家完成付款。

2、客戶端收到Apple返回的票據信息,並對票據信息進行遍歷發送到服務端做驗證,同時做好客戶端票據信息的保存工作以免因爲網絡問題導致掉單。

3、客戶端收到自己服務端返回的成功消息後實現productID的消耗即完成了一個購物過程。

費消耗型項目驗證:

非消耗型項目的驗證:

1、客戶端發起Apple支付玩家完成付款。

2、客戶端收到Apple返回的票據信息,並對票據信息進行遍歷發送到服務端做驗證,同時做好客戶端票據信息的保存工作以免因爲網絡問題導致掉單,這裏發給服務端校驗的時候最好能夠對所有的購買項目實現遍歷,因爲非消耗項目不會被消耗例如一個 非消耗型票據如下。

  1. {
  2.     "code": "0",
  3.     "key": 63,
  4.     "ptime": 1508770082,
  5.     "coin": 4588,
  6.     "rece": {
  7.         "receipt_type": "ProductionSandbox",
  8.         "adam_id": 0,
  9.         "app_item_id": 0,
  10.         "bundle_id": "xxx",
  11.         "application_version": "1",
  12.         "download_id": 0,
  13.         "version_external_identifier": 0,
  14.         "receipt_creation_date": "2017-10-23 14:47:52 Etc/GMT",
  15.         "receipt_creation_date_ms": "1508770072000",
  16.         "receipt_creation_date_pst": "2017-10-23 07:47:52 America/Los_Angeles",
  17.         "request_date": "2017-10-23 14:48:03 Etc/GMT",
  18.         "request_date_ms": "1508770083367",
  19.         "request_date_pst": "2017-10-23 07:48:03 America/Los_Angeles",
  20.         "original_purchase_date": "2013-08-01 07:00:00 Etc/GMT",
  21.         "original_purchase_date_ms": "1375340400000",
  22.         "original_purchase_date_pst": "2013-08-01 00:00:00 America/Los_Angeles",
  23.         "original_application_version": "1.0",
  24.         "in_app": [
  25.             {
  26.                 "quantity": "1",
  27.                 "product_id": "IPACOIN300",
  28.                 "transaction_id": "1000000345744321",
  29.                 "original_transaction_id": "1000000345744321",
  30.                 "purchase_date": "2017-10-23 12:25:26 Etc/GMT",
  31.                 "purchase_date_ms": "1508761526000",
  32.                 "purchase_date_pst": "2017-10-23 05:25:26 America/Los_Angeles",
  33.                 "original_purchase_date": "2017-10-23 12:25:26 Etc/GMT",
  34.                 "original_purchase_date_ms": "1508761526000",
  35.                 "original_purchase_date_pst": "2017-10-23 05:25:26 America/Los_Angeles",
  36.                 "is_trial_period": "false"
  37.             },
  38.             {
  39.                 "quantity": "1",
  40.                 "product_id": "IPACOIN300",
  41.                 "transaction_id": "1000000345798569",
  42.                 "original_transaction_id": "1000000345798569",
  43.                 "purchase_date": "2017-10-23 14:47:51 Etc/GMT",
  44.                 "purchase_date_ms": "1508770071000",
  45.                 "purchase_date_pst": "2017-10-23 07:47:51 America/Los_Angeles",
  46.                 "original_purchase_date": "2017-10-23 14:47:51 Etc/GMT",
  47.                 "original_purchase_date_ms": "1508770071000",
  48.                 "original_purchase_date_pst": "2017-10-23 07:47:51 America/Los_Angeles",
  49.                 "is_trial_period": "false"
  50.             },
  51.             {
  52.                 "quantity": "1",
  53.                 "product_id": "IPACOIN3000",
  54.                 "transaction_id": "1000000345744346",
  55.                 "original_transaction_id": "1000000345744346",
  56.                 "purchase_date": "2017-10-23 12:25:42 Etc/GMT",
  57.                 "purchase_date_ms": "1508761542000",
  58.                 "purchase_date_pst": "2017-10-23 05:25:42 America/Los_Angeles",
  59.                 "original_purchase_date": "2017-10-23 12:25:42 Etc/GMT",
  60.                 "original_purchase_date_ms": "1508761542000",
  61.                 "original_purchase_date_pst": "2017-10-23 05:25:42 America/Los_Angeles",
  62.                 "is_trial_period": "false"
  63.             }
  64.         ]
  65.     },
  66.     "sandbox": "1"
  67. }
你需要對票據信息遍歷以找到最近購買的非消耗型產品。

自動續期訂閱、非自動續期訂閱項目

這兩種商品還未用到所以暫時不做總結,開發者可以通過多次充值打印票據信息根據實際情況處理驗證。

在蘋果支付驗證的時候一定要實現對應用APP的bundleID、transaction_id以及productID的校驗,只有這樣才能防止被刷單。因爲蘋果只會告訴你這個票據是否可以驗證通過卻不告訴你這個票據是否被使用過,所以只有實現了對bundleID、transaction_id以及productID的校驗纔可以保證這個訂單隻被用一次,並且是你的應用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章