Commit d2a7ab9f authored by 桂秋月's avatar 桂秋月

mock shangchuan

parent b085af97
import os,sys
aa=os.path.abspath(__file__)
sys.path.append(os.path.dirname(os.path.dirname(aa)))
from flask import Flask
from blueprints.settings import config,baseConfig,testConfig,qaConfig
from blueprints.selects import indexpage
from blueprints.callback_test import callback_test
from blueprints.tools.rwKeyData import rwKeyData
env=rwKeyData().readKeyData('baseinfo','env') or 'qa'
app1 = Flask(__name__)
app1.register_blueprint(indexpage)
app1.register_blueprint(callback_test)
c=config.get(env,qaConfig)
app1.config.from_object(c)
app1.config.setdefault("sConfig",c)
app1.config.setdefault("baseconfig",baseConfig)
@app1.context_processor
def sis():
return dict(cc=c)
if __name__ == '__main__':
sis()
app1.run(debug=True)
...@@ -10,7 +10,7 @@ issimple = 1 ...@@ -10,7 +10,7 @@ issimple = 1
usered = qa usered = qa
defaluttime = 2 defaluttime = 2
timeout = 20 timeout = 20
phone_no = 18801012591 phone_no = 13211111240
environment = qa3 environment = qa3
term = 6 term = 6
amount = 10000 amount = 10000
...@@ -25,9 +25,9 @@ counter = 0 ...@@ -25,9 +25,9 @@ counter = 0
totalamount = 6875.33 totalamount = 6875.33
loanid = 5 loanid = 5
totalloanamount = 1004.61 totalloanamount = 1004.61
termno = 7 termno = 5
verificationid = BK744588885171192830848411 verificationid = BK751417141686117278698537
applyno = AN000000143573824630185984 applyno = AN000000144618983447142400
[globalvar] [globalvar]
password = 123456aaa password = 123456aaa
...@@ -40,10 +40,10 @@ apitoken = 87ff232a-d8bd-427d-9455-43e41146703a ...@@ -40,10 +40,10 @@ apitoken = 87ff232a-d8bd-427d-9455-43e41146703a
mapitoken = ddf2c21774ea6741f278a7b7172dbe9a3dd7 mapitoken = ddf2c21774ea6741f278a7b7172dbe9a3dd7
quotarecordorderno = {'msg': None, 'code': '0000', 'data': []} quotarecordorderno = {'msg': None, 'code': '0000', 'data': []}
hetongtoken = 190db434e2e91c21086623c0b7cc22af hetongtoken = 190db434e2e91c21086623c0b7cc22af
cardno = 6222020230273986330 cardno = 6222020218008727171
msgtoken = {token} msgtoken = {token}
sceneid = 5 sceneid = 5
deadline = 1589801844000 deadline = 1589946187000
paymenttoken = 62979fec-b060-4b0f-85b8-d01691b5b9e1 paymenttoken = 62979fec-b060-4b0f-85b8-d01691b5b9e1
requestid = 63119890137088 requestid = 63119890137088
vcode = 238345 vcode = 238345
...@@ -78,12 +78,12 @@ case_number_koala_risk = [{'koala_risk':[699]},{'usercenter':[500]},{'risk':[651 ...@@ -78,12 +78,12 @@ case_number_koala_risk = [{'koala_risk':[699]},{'usercenter':[500]},{'risk':[651
case_number_koala_loan = [{'koala_loan':[672, 673, 674, 675, 676, 677, 678, 697, 698, 704]}] case_number_koala_loan = [{'koala_loan':[672, 673, 674, 675, 676, 677, 678, 697, 698, 704]}]
case_number_koala_repay = [{'koala_repay':[679, 680]}] case_number_koala_repay = [{'koala_repay':[679, 680]}]
case_number_ka_koala_loan = [{'ka_koala_loan':['803','802','801','800','798','799',808,818,820]}] case_number_ka_koala_loan = [{'ka_koala_loan':['803','802','801','800','798','799',808,818,820]}]
case_number_ka_koala_repay = [{'ka_koala_repay':['791','786','787','788','789','790']}] case_number_ka_koala_repay = [{'ka_koala_repay':['791','786','787','839','788','789','790']}]
case_number_test = [{'passportapi':[323,382,383,384]},{'koala_repay':[679, 680]},{'passportapi':[323,382,383,384]}] case_number_test = [{'passportapi':[323,382,383,384]},{'koala_repay':[679, 680]},{'passportapi':[323,382,383,384]}]
case_number_funding_plan = [{'passportapi':[816,817]}] case_number_funding_plan = [{'passportapi':[816,817]}]
case_number_case_fengkong = [{'koala_risk':[699]},{'usercenter':[500]},{'risk':[651]},{'koala_risk':[709,753,671]}] case_number_case_fengkong = [{'koala_risk':[699]},{'usercenter':[500]},{'risk':[651]},{'koala_risk':[709,753,671]}]
case_number_case_fangkuan = [{'ka_koala_loan':[801,818,802,798,799,800,820]}] case_number_case_fangkuan = [{'ka_koala_loan':[801,818,802,798,799,800,820]}]
[sqldata] [sqldata]
sqldata = ['6222020234701809463', '6222800007291022938', '6222800007438754336', '6222000003436617201', '6222800002393783578', '6222000001862553460', '6222020221310214650', '6222020247453948818', '6222020222273103940', '6222020234701809463', '6222020243969697839', '6222020244828238910', '6222020234701809463', '6222020241761813559', '6222984827650227', '6222984827650437', '6222020234701809463', '6222020234701809463', '6222986928006526', '6222020258629127881', '6222020230427672215', '6222020243140726451', '6222020234701809463', '6222020248066509138', '6222020230198257445', '6222020244580838957', '6222800008789891438', '6214830110386975', '6214830110386976', '6222800007525616851', '6222986928006526', '6222020230273986330', '6222020248269209912', '6222020234701809463', '6222020234701809463', '6222020234701809463', '6222020247877570170', '6222020267634108853', '6222980657818946', '6217005814863930197', '6222020235808441998', '6222020234445722390', '6222020240492096864', '6222988829174825', '6222020243457719151', '6222020222435861837', '6222989171771366', '6222800004648482337', '6222800007828007774', '6222988016372562', '6217001491079512228', '6222020218007326557', '6222020226591933817', '6222020227045568996', '6222020230599467450', '6222020234954443306', '6222020218004048926', '6222020222354776183', '6222020235430472625', '6222020235519733869', '6222020250204390523'] sqldata = [404, '6222020243457719151', 0, 0, 0, 0, '沈博裕', '12011019670327487X', '13805732771']
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
""" """
import os,json,time,sys import os,json,time,sys
from blueprints.tools.deals import dealSha1
aa=os.path.abspath(__file__) aa=os.path.abspath(__file__)
sys.path.append(os.path.dirname(os.path.dirname(aa))) sys.path.append(os.path.dirname(os.path.dirname(aa)))
from flask import render_template,current_app,Blueprint,request,url_for,redirect,jsonify from flask import render_template,current_app,Blueprint,request,url_for,redirect,jsonify
...@@ -31,4 +32,23 @@ def hetongcallback1(): ...@@ -31,4 +32,23 @@ def hetongcallback1():
userId=request.json.get('userId') userId=request.json.get('userId')
templateId = request.json.get('contract')[0].get('templateId') templateId = request.json.get('contract')[0].get('templateId')
t={'userid':userId,'templateid':1,'msg':'return test flask out-custom_link','code':'0'} t={'userid':userId,'templateid':1,'msg':'return test flask out-custom_link','code':'0'}
return jsonify(t) return jsonify(t)
\ No newline at end of file
@callback_test.route('/api/v1/unified',methods=['post'])
def mock_shangbao():
body={
"version":"1.0",
"instCode":"2",
"operation":"preApply",
"sign":""
}
afterBody=dealSha1(body)
resp={
"code": 0,
"message": "OK",
"data": {
"seqNo": "ba6a36d1-a34a-4588-811e-aa25394417a8"
}
}
return jsonify(resp)
\ No newline at end of file
...@@ -169,7 +169,7 @@ if __name__ == '__main__': ...@@ -169,7 +169,7 @@ if __name__ == '__main__':
# 串流程 # 串流程
name='ka_koala_repay' name='ka_koala_repay'
# name='case_fangkuan' # name='case_fangkuan'
name='payment' #name='payment'
# ############ # ############
......
...@@ -694,9 +694,9 @@ if __name__ == '__main__': ...@@ -694,9 +694,9 @@ if __name__ == '__main__':
#cases_number= [323, 382, 383, 384, 385,361, 402, 403, 404, 405,401] #cases_number= [323, 382, 383, 384, 385,361, 402, 403, 404, 405,401]
cases_number= [323, 382, 383, 384, 385,361, 402, 403, 404, 405] cases_number= [323, 382, 383, 384, 385,361, 402, 403, 404, 405]
cases_number=[786] cases_number=[787]
cases_number = [445] #cases_number = [6377]
cases_number=[611] #cases_number=[852]
#cases_number = [369,370,409,373] #cases_number = [369,370,409,373]
#cases_number=[358, 359, 360,323, 382, 383, 384, 385,361, 402, 403, 404, 405,401,399,407,367,368,371,372,374,375,376,378,363,364,369,370] #cases_number=[358, 359, 360,323, 382, 383, 384, 385,361, 402, 403, 404, 405,401,399,407,367,368,371,372,374,375,376,378,363,364,369,370]
...@@ -704,10 +704,9 @@ if __name__ == '__main__': ...@@ -704,10 +704,9 @@ if __name__ == '__main__':
#casefile = [{'passportapi':['323.json', '382.json','383.json', '384.json', '385.json']},{'payment': t.split(',')}] #casefile = [{'passportapi':['323.json', '382.json','383.json', '384.json', '385.json']},{'payment': t.split(',')}]
casefile =[{'payment': t.split(',')}] casefile =[{'trade': t.split(',')}]
casefile = [{'ka_koala_repay': t.split(',')}]
#casefile = [{'ka_koala_repay': t.split(',')}]
#print(casefile) #print(casefile)
......
...@@ -123,7 +123,7 @@ def dealSign(casejson): ...@@ -123,7 +123,7 @@ def dealSign(casejson):
if body.get('sign'): if body.get('sign'):
body=dict(sorted(body.items())) body=dict(sorted(body.items()))
if len(str(body.get('sign')))>=0: if len(str(body.get('sign')))>=0 and type=='md5':
temp='' temp=''
for k,v in body.items(): for k,v in body.items():
if not k=='sign': if not k=='sign':
...@@ -135,6 +135,21 @@ def dealSign(casejson): ...@@ -135,6 +135,21 @@ def dealSign(casejson):
#print(casejson) #print(casejson)
return casejson return casejson
def dealSha1(date):
#elif len(str(body.get('sign'))) >= 0 and type == 'sha1':
#sign=
temp = ''
date = dict(sorted(date.items()))
for k, v in date.items():
if not k == 'sign':
t = k + "=" + str(v) + "&"
temp += t
temp = temp[0:-1] + 'jxsjgxtkey'
#print(temp)
if date.get('sign'):
date['sign']=hashlib.sha1(temp.encode(encoding='utf-8')).hexdigest()
return date
def conn_redis(): def conn_redis():
redis_url='opapi-redis1.quantgroups.com' redis_url='opapi-redis1.quantgroups.com'
redis_port=26379 redis_port=26379
...@@ -219,18 +234,24 @@ if __name__ == '__main__': ...@@ -219,18 +234,24 @@ if __name__ == '__main__':
#print(t) #print(t)
t="applyNumber:AN000000142468362325409792," \ # t="applyNumber:AN000000142468362325409792," \
"bankCode:PINGAN," \ # "bankCode:PINGAN," \
"bankCardNumber:6222986928006526," \ # "bankCardNumber:6222986928006526," \
"userId:71," \ # "userId:71," \
"reservePhoneNumber:13700001114" # "reservePhoneNumber:13700001114"
#
temp={} # temp={}
for i in t.split(','): # for i in t.split(','):
print(i) # print(i)
temp.update(**{i.split(":")[0]:i.split(":")[-1]}) # temp.update(**{i.split(":")[0]:i.split(":")[-1]})
print(temp) # print(temp)
data={
"version": "1.0",
"instCode": "2",
"operation": "preApply",
"sign": "%s"
}
print(dealSha1(data))
......
...@@ -258,8 +258,8 @@ if __name__ == "__main__": ...@@ -258,8 +258,8 @@ if __name__ == "__main__":
#names=['ka_koala_repay','koala_risk','ka_koala_loan','trade'] #names=['ka_koala_repay','koala_risk','ka_koala_loan','trade']
# names = ['risk'] names = ['ka_koala_repay','trade']
names=['zhongtai_hetong','msg','configuration_center','payment'] #names=['zhongtai_hetong','msg','configuration_center','payment']
for name in names: for name in names:
......
...@@ -17,4 +17,4 @@ ...@@ -17,4 +17,4 @@
"header": { "header": {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
} }
} }
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"commit": "发起还款(API)(POST)", "commit": "发起还款(API)(POST)",
"url": "/v1/repayment/pay", "url": "/v1/repayment/pay",
"casename": "token", "casename": "token",
"sql": "select distinct d.`loan_application_history_id`,p1.card_no, 0 as noncestr,0 as timestamp ,\r\n0 as sign,0 as app_id,c.`name`,c.`id_no`,c.`phone_no` from xyqb_user.`user_detail`c\r\ninner join xyqb.`loan_application_manifest_history` d\r\nINNER JOIN xyqb.loan_application_history a\r\nINNER JOIN xyqb.repayment_plan e \r\nINNER JOIN payment_center.card_bind_info p1\r\nINNER JOIN payment_center.user p2\r\non a.id=d.loan_application_history_id and p1.user_id=p2.id and p2.xyqb_uid=c.user_id and p2.xyqb_uid=a.user_id and \r\ne.loan_application_history_id=d.loan_application_history_id\r\nwhere d.`funding_corp_id`=100010 and d.`loan_application_history_id`={{sqldata_0}} order by rand() limit 1;", "sql": "select distinct d.`loan_application_history_id`,p1.card_no, 0 as noncestr,0 as timestamp ,\r\n0 as sign,0 as app_id,c.`name`,c.`id_no`,c.`phone_no` from xyqb_user.`user_detail`c\r\ninner join xyqb.`loan_application_manifest_history` d\r\nINNER JOIN xyqb.loan_application_history a\r\nINNER JOIN xyqb.repayment_plan e \r\nINNER JOIN payment_center.card_bind_info p1\r\nINNER JOIN payment_center.user p2\r\non a.id=d.loan_application_history_id and p1.user_id=p2.id and p2.xyqb_uid=c.user_id and p2.xyqb_uid=a.user_id and \r\ne.loan_application_history_id=d.loan_application_history_id\r\nwhere d.`funding_corp_id`=100010 and d.`loan_application_history_id`={{sqldata_0}} and a.progress=15 order by rand() limit 1;",
"db": "xyqb", "db": "xyqb",
"result": { "result": {
"code": "0" "code": "0"
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
"casename": "token", "casename": "token",
"sql": "select a.`business_flow_no`,b.`loan_application_history_id`,b.`term_no`\r\nfrom xyqb.`pay_order` a \r\ninner join xyqb.`repayment_record` b\r\ninner join xyqb.`loan_application_manifest_history` c\r\non a.`pay_order_no`=b.`repayment_plan_id`\r\nand b.`loan_application_history_id`=c.`loan_application_history_id`\r\nwhere b.`loan_application_history_id`={{sqldata_0}}\r\norder by rand() limit 1;", "sql": "select a.`business_flow_no`,b.`loan_application_history_id`,b.`term_no`\r\nfrom xyqb.`pay_order` a \r\ninner join xyqb.`repayment_record` b\r\ninner join xyqb.`loan_application_manifest_history` c\r\non a.`pay_order_no`=b.`repayment_plan_id`\r\nand b.`loan_application_history_id`=c.`loan_application_history_id`\r\nwhere b.`loan_application_history_id`={{sqldata_0}}\r\norder by rand() limit 1;",
"db": "xyqb", "db": "xyqb",
"sleep": "300",
"result": { "result": {
"code": "0" "code": "0"
}, },
"type": "koala", "type": "koala",
"sleep":"300",
"param": { "param": {
"businessFlowNo": "%s", "businessFlowNo": "%s",
"loanId": "%s", "loanId": "%s",
...@@ -18,4 +18,4 @@ ...@@ -18,4 +18,4 @@
"header": { "header": {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
} }
} }
\ No newline at end of file
...@@ -16,4 +16,4 @@ ...@@ -16,4 +16,4 @@
"header": { "header": {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
} }
} }
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"commit": "提前结清发起支付(POST)", "commit": "提前结清发起支付(POST)",
"url": "/v1/repayment/early_settlement/pay", "url": "/v1/repayment/early_settlement/pay",
"casename": "token", "casename": "token",
"sql": "select distinct p1.card_no,0 as noncestr,0 as timestamp ,0 as sign, 0 as app_id,c.`id_no`,c.`phone_no`,c.`name`\r\nfrom xyqb_user.`user_detail`c\r\ninner join xyqb.`loan_application_manifest_history` d\r\nINNER JOIN xyqb.repayment_plan e \r\nINNER JOIN payment_center.card_bind_info p1\r\nINNER JOIN payment_center.user p2\r\nINNER JOIN xyqb.loan_application_history a\r\non a.id=d.loan_application_history_id and\r\nc.user_id=d.user_id and p1.user_id=p2.id and p2.xyqb_uid=c.user_id\r\nand e.loan_application_history_id=d.loan_application_history_id\r\nwhere \r\nd.`funding_corp_id`=100010 and d.`loan_application_history_id`={{sqldata_0}} and a.progress=15\r\norder by rand() limit 1;", "sql": "select distinct p1.card_no, 0 as noncestr,0 as timestamp ,0 as sign, 0 as app_id,c.`id_no`,c.`phone_no`,c.`name`\r\nfrom xyqb_user.`user_detail`c\r\ninner join xyqb.`loan_application_manifest_history` d\r\nINNER JOIN xyqb.repayment_plan e \r\nINNER JOIN payment_center.card_bind_info p1\r\nINNER JOIN payment_center.user p2\r\nINNER JOIN xyqb.loan_application_history a\r\non a.id=d.loan_application_history_id and\r\nc.user_id=d.user_id and p1.user_id=p2.id and p2.xyqb_uid=c.user_id\r\nand e.loan_application_history_id=d.loan_application_history_id\r\nwhere \r\nd.`funding_corp_id`=100010 and d.`loan_application_history_id`={{loanid}} and a.progress=15\r\norder by rand() limit 1;",
"db": "xyqb", "db": "xyqb",
"result": { "result": {
"code": "0", "code": "0",
...@@ -30,4 +30,4 @@ ...@@ -30,4 +30,4 @@
"header": { "header": {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
} }
} }
\ No newline at end of file
...@@ -17,4 +17,4 @@ ...@@ -17,4 +17,4 @@
"header": { "header": {
"Content-Type": "application/x-www-form-urlencoded" "Content-Type": "application/x-www-form-urlencoded"
} }
} }
\ No newline at end of file
{
"method": "POST",
"commit": "绑卡-验证短信验证码-还款(POST)",
"url": "/v1/card/bind/confirm",
"casename": "token",
"sql": "select '000000' as verificationCode;\r\n",
"db": "xyqb",
"result": {
"code": "0"
},
"type": "koala",
"body": {
"verificationId": "{{verificationid}}",
"verificationCode": "%s"
},
"header": {
"Content-Type": "application/json"
}
}
\ No newline at end of file
{
"method": "POST",
"commit": "绑卡-发送短信验证码-还款(POST)",
"url": "/v1/card/bind/send_sms",
"casename": "token",
"sql": "select user_id from xyqb.`apply_quota_record` where order_no='{{applyno}}';",
"db": "xyqb",
"result": {
"code": "0"
},
"type": "koala",
"sleep": "3",
"rule": {
"bankCardNumber": "fakeinfo('cardNo',flag=0)"
},
"body": {
"applyNumber": "{{applyno}}",
"bankCode": "{{cardnoprovider}}",
"bankCardNumber": "%s",
"reservePhoneNumber": "{{phone_no}}",
"userId": "%s"
},
"header": {
"Content-Type": "application/json"
}
}
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"commit": "查询「下载要素清单模板」(GET)", "commit": "查询「下载要素清单模板」(GET)",
"url": "/middle_office/chaos/case_manifest", "url": "/middle_office/chaos/case_manifest",
"casename": "token", "casename": "token",
"sql": "select distinct b.loan_application_history_id\r\nfrom xyqb.repayment_record a \r\njoin xyqb.loan_application_history c on c.id=a.loan_application_history_id\r\njoin xyqb.repayment_plan b on a.loan_application_history_id=b.loan_application_history_id and a.repayment_plan_id=b.id\r\nwhere c.progress=15 and b.loan_application_history_id=8 and b.loan_application_history_id!=140\r\norder by rand() limit 1;", "sql": "select distinct b.loan_application_history_id\r\nfrom xyqb.repayment_record a \r\njoin xyqb.loan_application_history c on c.id=a.loan_application_history_id\r\njoin xyqb.repayment_plan b on a.loan_application_history_id=b.loan_application_history_id and a.repayment_plan_id=b.id\r\nwhere c.progress=15 and b.loan_application_history_id!=140\r\norder by rand() limit 1;",
"db": "xyqb_user", "db": "xyqb_user",
"result": { "result": {
"code": "0", "code": "0",
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
"commit": "创建放款单及资金清单(POST)", "commit": "创建放款单及资金清单(POST)",
"url": "/middle_office/loan", "url": "/middle_office/loan",
"casename": "token", "casename": "token",
"sql": "select a.id as aid,concat(d.total_amount),6,223,'0.23',11000,'250',b.id,b.name,10000,'2.76',100,1000,1000,c.order_no,d.id from xyqb_user.user a\r\njoin xyqb.quota_credit c on a.id=c.user_id \r\njoin xyqb.quota_account d on d.user_id=a.id \r\njoin xyqb.funding_corp b where d.is_active=1 and d.total_amount!=0\r\norder by d.id desc limit 1;", "sql": "select a.id as aid,concat(d.total_amount),6,223,'0.23',11000,'250',b.id,b.name,10000,'2.76',100,1000,1000,c.order_no,d.id from xyqb_user.user a\r\njoin xyqb.quota_credit c on a.id=c.user_id \r\njoin xyqb.quota_account d on d.user_id=a.id \r\njoin xyqb.funding_corp b where d.is_active=1 and d.total_amount!=0\r\norder by rand() limit 1;",
"db": "msg", "db": "msg",
"execjsonversion": "1.0,1.1,2.0", "execjsonversion": "1.0,1.1,2.0",
"result": { "result": {
"code": "0", "code": "0",
"exist_a": "select * from xyqb.loan_application_history where user_id={{sqldata_0}} and progress=24 and created_at >=DATE_SUB(now(),INTERVAL 10 MINUTE)" "exist_a": "select * from xyqb.loan_application_history where user_id={{sqldata_0}} and progress=24 and created_atand created_at >=DATE_SUB(now(),INTERVAL 10 MINUTE)"
}, },
"type": "transaction", "type": "transaction",
"rule": { "rule": {
...@@ -44,4 +44,4 @@ ...@@ -44,4 +44,4 @@
"header": { "header": {
"Content-Type": "application/json" "Content-Type": "application/json"
} }
} }
\ No newline at end of file
{
"method": "GET",
"commit": "根据授信单号查询「额度期数限制json串」(GET)",
"url": "/middle_office/risk/audit/query_amount_term_limits",
"casename": "token",
"sql": "select a.order_no from xyqb.quota_credit a \r\njoin xyqb.apply_quota_record b on a.order_no=b.order_no and a.user_id=b.user_id\r\njoin xyqb.assign_funding_record c on b.id=b.asset_order_id where c.funding_corp_id='100010' order by rand() limit 1;",
"db": "msg",
"execjsonversion": "2.2",
"result": {
"code": "0",
"mustexist": "['code', 'msg']",
"notmustexist": "['data']"
},
"type": "transaction",
"body": {
"orderNo": "%s"
},
"header": {
"Content-Type": "application/x-www-form-urlencoded"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment