【2020.06】国税総局インボイス検査プラットフォーム検証コードの最新取得方法


国税総局の領収書検査プラットフォームは最近JSの更新が頻繁で、前に検証コード識別の文章を書いた.https://blog.csdn.net/kerlomz/article/details/105974823多くの人が私を信じて、私にどのように検証コードを取得するかを聞いて、意外にも皆さんが前の一歩に落ちたとは思わなかった.次は簡単な方法を紹介しましょう.
pypi倉庫にhttps://pypi.org/project/invoice-captcha/プロジェクトは要求された暗号化パラメータと返された復号化パラメータをカプセル化しており、具体的な使用方法は以下の説明を参照してください.
まず公式サイトのサンプルコードを運んでください.
  • 呼び出し例:
    import requests
    from invoice_captcha.utils import get_captcha_params, parse_captcha_resp, kill_captcha_fast, ua
    
    CAPTCHA_URL = "https://fpcy.guangdong.chinatax.gov.cn/NWebQuery/yzmQuery"
    
    
    #     
    key1 = "011111111111"
    #     
    key2 = "11111111"
    
    # #     
    # key3 = "20200603"
    # #         
    # key4 = "000000"
    
    
    def fetch_captcha(invoice_code, invoice_no):
    
        sess = requests.Session()
    
        #     ,      
        # sess.proxies = proxy
        sess.headers = {"User-Agent": ua.random}
    
        #          
        payload = get_captcha_params(
            invoice_code=invoice_code, invoice_no=invoice_no
        )
    
        #          
        r = sess.get(CAPTCHA_URL, params=payload)
    
        #          
        plain_dict = parse_captcha_resp(r)
    
        #          
        # key1   base64
        # key4             
        print("     --- ", plain_dict)
    
        #         
        captcha_text = kill_captcha_fast(
            plain_dict, 
          	#   API       ,     QQ:27009583,      
            # api="http://kerlomz-ac86u.asuscomm.com:19811/captcha/v1"
        )
    
        #       
        print("     --- ", captcha_text)
        
        
    if __name__ == '__main__':
        for i in range(10):
            fetch_captcha(key1, key2)
    
  • 剖析の結果、このsdkは2つの部分に分けられ、1つは検証コードを取得するためのパラメータ生成関数get_captcha_params()であり、もう1つは公式サイトから返される暗号化メッセージを解析するための関数parse_captcha_resp()であり、筆者は、パラメータと解析メッセージを要求する関数が1つのnow_を共有していることを発見した.time変数は、このプロジェクトがマルチスレッド同時化をサポートしていないことを意味するが、一般的な研究学習に使用するには十分であるべきである.kill_captcha_fast()はテストインタフェースを接続し、このインタフェースは変更でき、使用者が自分で修正するのに便利である.筆者は後でJSを専門に説明する文章を開きますので、ご注意ください.