模拟开户接口,使用python脚本实现批量用户开通

1、目的

通过模拟接口方法,实现批量用户开通

2、分析

A、接口含body和head部分,其中body中的某些变量为必填字段,包含用户的信息。

B、用户信息清单可以整理成ott_after_check_device文件。

C、将ott_after_check_device文件转换成列表数据类型,将其用户信息对应替换到body.xml文件中。

3、脚本实现

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder

def get_txt_after_check_device():
    ott_after_check_device = '.\\ott_after_check_device.txt'
    f = open(ott_after_check_device)
    lines = f.readlines()
    all_list_device = []
    for line in lines:
        line = line.replace("\n", '')
        list_device = line.split(',')
        all_list_device.append(list_device)
    return all_list_device


def ott_boss(list_device):
    sleep_time = 0.001
    # print len(list_device)
    for i in range(len(list_device)):
        print u'新开户数 :', i + 1
        time.sleep(sleep_time)
        acc_num = list_device[i][0]
        stb_id = list_device[i][1]
        print 'STBID : ', stb_id
        account = list_device[i][2]
        url = 'http://10.2.214.133:6600/oss/rest/mango/bossManagement/syncOrder'
        mul = MultipartEncoder(
                fields={
                    'xmlhead': '<?xml version="1.0" encoding="UTF-8"?> <InterBOSS>'
                               '<Version>0100</Version>'
                               '<TestFlag>0</TestFlag>'
                               '<BIPType>'
                               '<BIPCode>IPTVB412</BIPCode>'
                               '<ActivityCode>T2101057</ActivityCode>'
                               '<ActionCode>0</ActionCode>'
                               '</BIPType>'
                               '<RoutingInfo>'
                               '<OrigDomain>BOSS</OrigDomain>'
                               '<RouteType>00</RouteType>'
                               '<Routing>'
                               '<HomeDomain>OTT</HomeDomain>'
                               '<RouteValue>210</RouteValue>'
                               '</Routing>'
                               '</RoutingInfo>'
                               '<TransInfo>'
                               '<SessionID>2018092517323481311686</SessionID>'
                               '<TransIDO>2018092517323416388122</TransIDO>'
                               '<TransIDOTime>20180211173234</TransIDOTime>'
                               '</TransInfo> </InterBOSS>',
                    'xmlbody': '<?xml version="1.0" encoding="UTF-8"?> <InterBOSS>     <SvcCont><![CDATA[<?xml '
                               'version="1.0" encoding="UTF-8"?> <OrdSynReq>'
                               '<PkgSeq>73120180111000007</PkgSeq>'
                               '<RecNum>1</RecNum>'
                               '<UD1>'
                               '<IDType>01</IDType>'
                               '<IDV>%s</IDV>'
                               '<Brand>09</Brand>'
                               '<Opr>06</Opr>'
                               '<OprT>20180925171922</OprT>'
                               '<BizType>52</BizType>'
                               '<Seq>8121</Seq>'
                               '<BroadbandID>738815023717</BroadbandID>'
                               '<ZipCode></ZipCode>'
                               '<Address></Address>'
                               '<UserName></UserName>'
                               '<UserSex></UserSex>'
                               '<IDCardType></IDCardType>'
                               '<IDCardNum></IDCardNum>'
                               '<AreaCode>K381</AreaCode>'
                               '<GroupID></GroupID>'
                               '<POCont>'
                               '<ActType>1</ActType>'
                               '<StbID>%s</StbID>'
                               '<Account>%s</Account>'
                               '<Password>111111</Password>'
                               '<ChrgType>2</ChrgType>'
                               '<EffetiTime>20180925171922</EffetiTime>'
                               '<Channel>08</Channel>'
                               '<SPID>mango</SPID>'
                               '<BizCode>defaultBasicProduct</BizCode>'
                               '<BizKind>01</BizKind>'
                               '</POCont>'
                               '</UD1> </OrdSynReq> '
                               ']]></SvcCont> </InterBOSS>' % (acc_num, stb_id, account)
                }
        )
        header = {'Content-Type': mul.content_type}
        body = mul
        response = requests.post(url, data=body, headers=header)
        print response.content
        print response.status_code


if __name__ == '__main__':
    ott_boss(get_txt_after_check_device())

有需要Python学习资料的小伙伴吗?小编整理【一套Python资料、源码和PDF】,感兴趣者可以加学习群:548377875,反正闲着也是闲着呢,不如学点东西啦~~

猜你喜欢

转载自blog.csdn.net/qq_40925239/article/details/82890331