易寶給的代碼事例:http://220.181.25.233:8081/confluence/pages/viewpage.action?pageId=1671174
根據他給的事例可以在網頁上模擬一次請求。
< html > < head > < meta http-equiv = "content-type" content = "text/html;
charset=UTF-8" /> </ head > < body > < form action = "<a
href="http://220.181.25.233:8081/member/bha/toRegister" "="" style="color: rgb(59, 115, 175); text-decoration: none; border-radius: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto
!important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing:
content-box !important; min-height: auto !important; background: none !important;">http://220.181.25.233:8081/member/bha/toRegister" method = "post" > < input name = "sign" type = "hidden" value = "signdata" ></ input > < textarea name = "req" cols = "100" rows = "5" ></ textarea > < input type = "submit" value = "提交" ></ input > </ form > </ body > </ html > |
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
standalone
=
"yes"
?>
<
request
platformNo
=
"10040011137"
>
<
platformUserNo
>用戶編號</
platformUserNo
>
<
nickName
>土豪</
nickName
>
<
realName
>高富帥</
realName
>
<
idCardType
>G2_IDCARD</
idCardType
>
<
idCardNo
>430503198010100432</
idCardNo
>
<
mobile
>18688888888</
mobile
>
</
request
>
NSMutableURLRequest *request = [[NSMutableURLRequestalloc]initWithURL:[NSURLURLWithString:[NSStringstringWithFormat:@"%@%@",PAYBASEURL,_contextUrl]]];
[request setHTTPMethod:@"POST"];
NSString *sss = [NSStringstringWithFormat:@"req=%@&sign=%@",_reqStr,@"222"];
NSData *data = [sssdataUsingEncoding:NSUTF8StringEncodingallowLossyConversion:YES];
[request setHTTPBody: data];
[_mainWebViewloadRequest:request];
測試環境sign隨便寫,後臺不解析。如果接入生產環節,sign簽名要填真實的,後臺會解析。簽名需要經過出來urlencode一下。
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)_sign,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
然後上面那req的值怎麼辦,拼湊即可:之前需要傳的值形成一個字典,然後轉變成需要格式的xml。
- (void)setParameters:(NSDictionary *)patameters ContextUrl:(NSString *)contextUrl
{
NSMutableString *mutableStr= [[NSMutableStringalloc]initWithString:[NSStringstringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><request platformNo=\"%@\">",patameters[@"platformNo"]]];
NSArray *array = [patametersallKeys];
for (NSString *din array) {
if (![disEqualToString:@"platformNo"]) {
[mutableStr appendString:[NSStringstringWithFormat:@"<%@>",d]];
[mutableStr appendString:[patametersobjectForKey:d]];
[mutableStr appendString:[NSStringstringWithFormat:@"</%@>",d]];
}
}
[mutableStr appendString:[NSStringstringWithFormat:@"</request>"]];
_reqStr = mutableStr;
_contextUrl = contextUrl;
}