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>test@hotmail.com</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

阅读更多
版权声明:随便转载,方便就写个出处。 https://blog.csdn.net/xiao562994291/article/details/50549294
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭