ios接易寶支付

易寶給的代碼事例: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>
粘貼到text裏面,改後綴爲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>
  <email>[email protected]</email>
  <notifyUrl>http://www.baidu.com</notifyUrl>
  <callbackUrl>http://www.baidu.com</callbackUrl>
</request>
由此可以得出,接口採用post方式,傳兩個鍵值對,req=“上面的一段”&sign=任意字符。

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;

}


共同交流進步,不足之處,指出相互促進。

易寶支付http://download.csdn.net/detail/xiao562994291/9411749

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章