dingdong-helper-node - Dingdong食料品ショッピングアシスタントは、iOSクライアントのネイティブAPIを使用して、ピーク時の注文をサポートし、リーク検出をサポートし、複数のアカウントをサポートし、Webhook通知をサポートします(反対側を自分で実装する必要があります)

(叮咚买菜助手,使用iOS客户端原生API,支持高峰期下单、支持捡漏、支持多账号、支持webhook通知(需自行实现对端))

Created at: 2022-04-17 12:21:01
Language: JavaScript
License: GPL-3.0

Dingdongショッピングアシスタント(Node.js)

利用可能 api_version code_size last_updayed

非推奨:一部のユーザーはこのプロジェクトの開始点を理解できないため、このリポジトリはコミット後に読み取り専用に変換され、署名アルゴリズムは使用できなくなります。

これまでにサポートを利用し、聞いて、参加してくれたすべてのユーザーに感謝します。川や湖でお会いしましょう。

iOSクライアントのネイティブAPIを使用して、ピーク時の注文、リーク検出のサポート、複数のアカウントのサポート、およびWebhook通知のサポートをサポートします(反対側を自分で実装する必要があります)

テレグラムチャットグループ:クリックして参加

前に書く

このプロジェクトの目的は、より多くの人々がよく食べて食べるのを助けることです。ライセンスで許可されていますが、このプロジェクトから利益を得ることはサポートされていません。

自分のニーズを満たした後もまだ余裕がある場合は、周りの人、特に一人暮らしの高齢者を助けてください。

Dingdong Shopping Officialへの書き込み:このプロジェクトは、署名アルゴリズム、インターフェイスパラメータなどを含むがこれらに限定されない、会社の利益への損害を防ぐために最善を尽くしました。このプロジェクトがあなたの会社の権利を侵害しているとあなたの会社が信じるならば、電子メール

[email protected]
で我々に連絡してください、そして、我々はこのプロジェクトを止めます。

プログラマーの残業を減らし、あなたと私から始めましょう。

2022-05-01メジャーアップデート

以降の更新ログはここに書き込まれません。本当に知る必要がある場合は、コミットを参照してください。

更新のたびに依存関係のインストールを実行し、任意のスクリプトを実行して、コンソールが構成ファイルの更新を求めるプロンプトを表示するかどうかを確認することをお勧めします。

iOSネイティブクライアントAPIを使用して、注文を行うことは実際のiOSデバイスと同じであり、注文が正常に行われることがテストされています。

注意:構成ファイルの構造は更新後に変更されたため、再構成する必要があります。

     更新前のセッションファイルは、このプロジェクトには適用されなくなりました。もう一度入手してください。

完了した署名アルゴリズム分析を提供してくれた@IMLRに特に感謝します。

sesi
nars

構成項目

依存関係をインストールする

node.js
実行環境がない場合は、最初にインストールしてください
node.js

次に、実行し

npm i yarn -g
て(このコマンドには管理者権限が必要な場合があります)、グローバルにインストールします
yarn

プロジェクトのルートディレクトリでターミナルを起動し、次のコマンドを実行して依存関係をインストールします。

yarn

設定を変更する

1.プロジェクト

config/config.example.js
のコピーを次のように作成します
config/config.js

2.提供されているオプションを変更します

webhook_url: '', // 下单成功通知url,暂无配套实现,可自行继承,详情请阅读后文 Webhook 部分
thread_count: 2, // 下单时创建的线程数,建议不要超过3
thread_interval: 100, // 线程创建间隔,建议不要低于100,单位ms
submit_interval_min: 20 * 1000, // 随机最小请求间隔时间,单位ms
submit_interval_max: 50 * 1000, // 随机最大请求间隔时间,单位ms
minimal_order_money: 0, // 小于该金额的订单不会被提交
api_channel: 'ios-native', // 可选 'ios-native', 'android-native' 或 'applet', 目前仅支持 'ios-native'
profiles: [
    {
        seq: 0, // 指示程序读取charles_sessions目录下的第几个文件
        im_secret: '',// 通过抓包获取,用于签名请求,获取请参见下文
        alias: '', // 配置文件别名,用于在下单成功时提示是哪个账号
    }
],

セッションを取得

リストされているリクエストが見つからない場合は、次のiOSデバイスのCharlesキャプチャヘルプを参照してください

1.iOSデバイスでDingdong食料品ショッピングアプリを起動します

2.ログインを完了します

3. Charlesを起動し、パケットキャプチャ構成を完了します(SSLパケットキャプチャを構成する必要があります)

4.「ショッピングカート」をクリックして更新します

5.リクエストで見つかりました

https://maicai.api.ddxq.mobi/cart/index

6.リクエストを右クリックし、を選択

Export Session
してプロジェクト
charles_sessions
フォルダに保存し、ファイルタイプを選択します
JSON Session File (.chlsj)

im_secretを取得する

セッションステップ3の取得を続行します

4.[マイ]をクリックして更新します

5.リクエストで見つかりました

https://sunquan.api.ddxq.mobi/api/v1/user/detail

6.リクエストを左クリックして

Contents
タブを選択し、タブの下半分の
JSON Text
ビューを選択します

user_info
7.以下の
im_secret
フィールドを見つけて、その値を構成ファイルにコピーします

利用可能な実行オプション

クイックモード

餌をつかむピークの1分前(06:00、08:30)に開始し、3分を超えて実行しないことをお勧めします。そうしないと、アカウントがリスク管理されます。

このプロジェクトは時限実行をサポートしておらず、サポートもしません。すべての実行オプションは有人の条件下で使用する必要があります

yarn checkout:speed

ピックアップモード

1時間以上実行しないことをお勧めします。そうしないと、禁止されやすくなります。

構成ファイルで調整可能な要求間隔。デフォルトは20秒から50秒のランダムです。

リークピッキングモードでの注文手順は、リクエスト間隔によって制限されません。デフォルトのロジックでは、ショッピングカートが利用可能で、配達時間が利用可能であるときに必死に注文するため、無人で実行しないでください。

yarn checkout:normal

iOSデバイス用のCharlesPacketCaptureヘルプ

アプリケーションはシステムのhttpプロキシを使用しないことを積極的に選択できるため、パケットをキャプチャするにはサードパーティのアプリケーションが必要です。

@iiwenによって書かれた完全なについては、を参照してください。

Webhook

使用しているクライアントに応じて、適応するためにソースコードを変更する必要があります

デフォルトでは、設定

webhook_url
POST
、注文が正常に行われると、このアドレスにリクエストが送信されます。このアドレスには
body
、次のフィールドが含まれています。
JSON

{
	profile: '测试', // 配置文件中填写的别名
	price: 0.01, // 本次下单金额
	arrival_time: '14:30-22:00', // 本次下单的预约时间
	raw: {
		cart: ..., // 原始的购物车数据
		order: ..., // 原始的订单数据
		reserve_time: ..., // 原始的预约时间数据
	}
}

を変更することでリクエストのメソッド、フォーマット、コンテンツを

/service/webhook.js
変更でき
body
ますが、入力パラメータ(
{ profile, order, reserve_time, cart }
)は変更できません。

注文成功音

注文が正常に行われると再生されます。

/assets/success.mp3
デフォルトはPeppaPigで、自分で置き換えることができます。

終了するには、関連するコードを自分でコメントするに移動

/scripts/checkout_cart.js
します。

免責事項

このプログラムは、GNU General PublicLicensev3.0を使用してオープンソース化されています。保証はありません。このプログラムを使用することにより、次のことを理解し、同意したことになります。

  • このプログラムを使用した場合のすべての結果についてはユーザーが責任を負い、サービスの中断、カーネルパニック、マシンの電源をオンまたは正常に使用できない、データの損失またはハードウェアを含むがこれらに限定されない、ユーザーの損失については作成者は責任を負いません。損傷、原子爆弾の爆発、第三次世界大戦、SCP-3125によって引き起こされた世界的なMKクラスの現実の再構築を防ぐことができないSCP財団など。
  • このプログラムを変更して公開する場合は、同じプロトコルを使用してソースを開く必要があります
  • このプログラムのすべての署名アルゴリズムはプロジェクトライセンスの対象ではなく、二次的な変更と配布は許可されていません。本当に必要な場合は、電報交換グループで私に連絡してください。