# iPickup Pro 使用說明 <a id="orgf6dc9a7"></a> ## 如何開始使用 iPickup Pro? 1. 根據你的作業系統和 CPU 架構,下載合適的 iPickup Pro 壓縮檔案 <https://github.com/ipickup-pro/releases/releases/latest> 2. 首次執行,打開 command prompt / terminal,並移動路徑至解壓後 folder 位置,然後輸入以下指令以開啟設定介面,瀏覽器會打開網址 <http://localhost:9999> ipickup_pro-win-x64.exe --config 3. 設定完成後,於 command prompt / terminal 輸入 bot 執行檔即可開始自動搶購的操作 ipickup_pro-win-x64.exe 4. 程式啟動後,可於瀏覽器打開 dashboard,網址為 <http://localhost:5555> (位址中的 port 可於設定介面中修改) <a id="orgccfd5d3"></a> ## 設定說明 <a id="org8870582"></a> ### `config.yml` 的設定項目 - **license-key** bot 註冊碼,請填寫 `IPICKUP-PRO-FREE` 以獲取免費授權。 - **dashboard** 網頁上的控制面版,打開網址 e.g. <http://localhost:5555> 可監察和操控任務。 - **port** dashboard 位址中的 port - **notification** 設定後可發送成功預訂的通知。 - **discord** Discord webhook,請參照此連結以設立 Discord webhook <https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks> - **proxies** Proxy 代理,設定為一行一組 proxy 列表。 每個 proxy 列表需有一個自定意的 proxy ID 指向 proxy 的檔案路徑,如 `[id]: [pathname]` proxy 檔的格式須為純文字檔,每行一個 proxy 位址,並跟隨此格式 `[USERNAME:PASSWORD@IP:PORT]` 或 `[IP:PORT:USERNAME:PASSWORD]` *參考範例:* proxies: monitor: proxies/monitor.txt checkout: proxies/checkout.txt startup: proxies/startup.txt - **profiles** 帳戶資料的設定,取機時作身份核實的用途。 設定為一陣列的 profiles,每一組 profile 需跟隨一個自定意的 profile ID。 *profile 的設定欄位:* - **first-name** 名字 - **last-name** 姓氏 - **email** 電郵地址 - **email-domain** 個人電郵域名,如使用此項便無需填寫 `email`, email address 為自動生成 e.g. xxxx@domain - **email-prefix** 會於自動生成的 email address 前面加上 prefix,必須配合 `email-domain` 使用 - **tel** 電話號碼,可選填,如不填便會自動生成 - **addr-1** 地址 1,可選填,如不填便會自動生成 - **addr-2** 地址 2,可選填,如不填便會自動生成 - **obfuscate** [true / false] 如 true 便會於 first-name 後面加上随機生產的字串 (不建議) - **gmail** [true / false] 如 true+obfuscate 便會於 email 地址字串之間随機加上 `.` (不建議) *參考範例:* profiles: profile-1: # 此為自定意的profile ID以作記認 email: hello@gmail.com first-name: Tai Man last-name: Chan obfuscate: false gmail: true profile-2: email-domain: mydomain.com # 使用email domain,會gen @mydomain.com 的forward電郵地址 first-name: AAA last-name: BBB obfuscate: true - **credit-cards** 支付用的付款卡。 設定為一陣列的付款卡,每一組付款卡需跟隨一個自定意的 ID。 *每組付款卡的設定欄位:* - **type** 卡類型 [ `VISA` / `MASTERCARD` / `AMERICAN_EXPRESS` ] - **number** 卡號碼 - **exp** 到期日,格式 MM/YY - **cvv** 安全碼,如 0 字開頭必須加上引號 *參考範例:* credit-cards: cc-1: # 此為自定意的credit card ID以作記認 type: VISA number: 4242424242424242 exp: 02/25 cvv: 333 cc-2: type: MASTERCARD number: 5555555555554444 exp: 02/25 cvv: '033' - **monitor** 監察器設定,如不使用檢測模式 (scan-stock) 可將此項目移除。 *可設定的欄位:* - **interval** 檢測間距毫秒(ms) - **proxy** proxy 列表,參數是自定的 proxy ID - **models** 檢測的型號,如沒提供,則會跟據 `properties.yml` 內的所有型號均會檢測 - **disabled** [true / false] 如 true 便關閉 monitor 不使用 - **mode** [normal / brute-force],預設為 normal, brute-force 是暴力模式,可獲取更快的供應情況,但不穩定及容易導致 ban IP *參考範例:* monitor: interval: 0 proxy: monitor mode: normal models: - pro-128gb-natural-titanium - pro-128gb-blue-titanium - pro-128gb-white-titanium - pro-128gb-black-titanium - pro-256gb-natural-titanium - pro-256gb-blue-titanium - pro-256gb-white-titanium - pro-256gb-black-titanium - pro-max-256gb-natural-titanium - pro-max-256gb-blue-titanium - pro-max-256gb-white-titanium - pro-max-256gb-black-titanium - pro-max-512gb-natural-titanium - pro-max-512gb-blue-titanium - pro-max-512gb-white-titanium - pro-max-512gb-black-titanium - **runtime** 執行設定 - **browser-mode** 瀏覽器模式 - **max-browsers-open-allowed** 最多同時開啟 browser 的數量,以防止同時開啟過多 browser 會導致 hang 機的情況 - **task-groups** 任務組 (task group) 的設定提供預設的 settings for tasks in a task group 每個 task group 需指向一個 `task-file` ,相同路徑的 `task-file` 可重覆使用。 除 `task-file` 是 task group 獨有外,task file 內的 task 的欄位跟 task group 相同但都非必需填寫,填寫了會覆蓋 task group 的設定,否則便會繼承 task group 的設定。 *task group / task 可設定的欄位:* - **profile** 參數自定意的 profile ID - **credit-card** 參數自定意的 credit card ID,選填,如不提供便會隨機揀選已有的 credit card (使用禮品卡除外) - **gift-cards** 禮品卡的 PIN,支援 multiple - **checkout-proxy** checkout 用的 proxy 列表,參數為自定意的 proxy ID - **startup-proxy** 登錄和監察用的 proxy 列表,參數為自定意的 proxy ID - **pre-submit** 預先提交,參數 true / false (不建議) - **scan-stock** 檢測存貨,參數 true / false,如 true 需啟動 monitor 設定 (建議) - **fixed-user-agent** 固定 user agent,參數 true / false,預設 false 是每個 request 使用不同的 user agent - **model** 訂購商品的型號 reference ID,請參照 `properties.yml` - **stores** 店舖 reference ID,請參照 `properties.yml` ,支援 multiple - **stores-order** 店舖排序,使用 reference ID,multiple - **submit-delay** 延遲提交,共用一個數值 ms(毫秒); 或可細分以下組別: - **pickup** (提取) - **contact** (聯絡) - **payment** (付款) - **review** (檢查) - **retry-delay** 重試 delay ms(毫秒) - **qty** 訂購數量: 1/2,預設 1 - **num** task 生成的數量,預設 1 - **pickup-date** 取貨日期: `earliest` / `latest` / `random` ,預設 `random` - **pickup-time** 取貨時間: `earliest` / `latest` / `random` ,預設 `random` - **safe-mode** 減低請求速度以模擬人手操作,參數為 true / false,或可用三等級分類: `low` / `medium` / `high` - **browser-mode** 使用瀏覽器落單,參數 true / false,或可用以下參數: - **headless** 隱藏瀏覽器,參數為 true / false - **block-images** 不載入圖片,參數為 true / false - **input-delay** 輸入延遲,參數為數值 ms(毫秒) - **click-delay** 接鍵延遲,參數為數值 ms(毫秒) - **remarks** 成功預訂後可顯示備註訊息於 dashboard / discord webhook 以作辨認 *參考範例:* task-groups: - # task group 1 task-file: tasks/sample-1.yml checkout-proxy: null startup-proxy: startup pre-submit: false scan-stock: true fixed-user-agent: false model: pro-128gb-black-titanium stores-order: [fw, tst, ifc, cwb, apm, ntp] profile: profile-1 credit-card: cc-1 retry-delay: 20 submit-delay: 1000 safe-mode: low - # task group 2 task-file: tasks/sample-2.yml checkout-proxy: checkout startup-proxy: startup pre-submit: false scan-stock: true fixed-user-agent: true model: pro-max-256gb-natural-titanium stores: [fw, tst, ifc, cwb] profile: profile-2 credit-card: cc-2 retry-delay: 0 submit-delay: contact: 2000 payment: 2500 safe-mode: false browser-mode: headless: false block-images: true input-delay: 20 click-delay: 40 <a id="orgc029025"></a> ## 常見問題 / FAQ <a id="org2c46dc4"></a> ### config.yml 不能讀取 請檢查 YAML 格式是否正確 <https://codebeautify.org/yaml-validator> <a id="org3d92371"></a> ### 如何加入其他型號/機款? 可添加至 `properties.yml` 的 `models` 如下: model-id: # 自定意的型號ID sku: SKU # Apple商品 part number / SKU name: NAME # 商品名稱 <a id="org40d3d8b"></a> ### Console 顯示的中文字為亂碼 - Windows 10 - Control Panel -> Region ![img](https://i.imgur.com/XVzgFyb.png) ![img](https://i.imgur.com/jT3pNVc.png) <a id="orge2f07db"></a> ### **如何保存 log 或將程式放置於背後運作** 建議使用 [PM2](https://pm2.keymetrics.io/) ,於 bot 應用程式的 folder 內新增 `ecosystem.config.js` 內容如下: module.exports = { apps : [{ name : "ipickup-pro", script : "./ipickup_pro-linux-x64 -y", "args": [ "--color" ], "env": { "DEBUG_COLORS": true } }] } 執行輸入 `pm2 start` 即可。 <a id="org897cc4a"></a> ### 常見的錯誤和處理方法 - **訂單只能送貨** - Apple Store 的風控管理,可調試不同的 delay 和開啟 `safe-mode` ,或使用 `browser-mode` (不建議,因 `browser-mode` 太慢和佔用較多資源) - 可使用[虚假信用卡](https://saijogeorge.com/dummy-credit-card-generator/)來測試有貨的商品,如設定能通過風控,會出現 card declined 的 error - **監察器未能獲取訊息** 如果在 console 和 dashboard 的監察 bar 上持續顯示此訊息,則表示 IP ban,需切換 IP/proxy 或將 `interval` 的數值調高。 - **登錄失敗,即將重試 / 不能打開頁面 / Server 未能接收請求, 即將重新提交&#x2026;** - IP ban,需切換 IP/proxy - 如沒有足夠的 IP/proxy,則減少 Tasks 數量 <a id="org228a0ea"></a> ### 技術支援或問題回報等 歡近加入 [iPickup Pro 用戶交流群](https://t.ly/vea4k) 參與討論及研究。