關(guān)于京東支付其實不難,最難的在于京東官方?jīng)]有給出文檔娃殖。經(jīng)過和后臺的協(xié)商值戳,所以參數(shù)都提交至后臺加密。 京東支付實際上就是一個H5頁面炉爆,只需要提交對應(yīng)參數(shù)就行堕虹。
NSMutableDictionary *formDic = [[NSMutableDictionary alloc] init];
[formDic setObject:@"version" forKey:@"version"];
[formDic setObject:self.sign forKey:@"sign"];
[formDic setObject:@"merchant" forKey:@"merchant"];
[formDic setObject:self.device forKey:@"device"];
[formDic setObject:self.tradeNum forKey:@"tradeNum"];
[formDic setObject:self.tradeName forKey:@"tradeName"];
[formDic setObject:self.tradeTime forKey:@"tradeTime"];
[formDic setObject:self.amount forKey:@"amount"];
[formDic setObject:self.orderType forKey:@"orderType"];
[formDic setObject:self.currency forKey:@"currency"];
[formDic setObject:self.callbackUrl forKey:@"callbackUrl"];
[formDic setObject:self.notifyUrl forKey:@"notifyUrl"];
[formDic setObject:self.userType forKey:@"userType"];
[formDic setObject:self.userId forKey:@"userId"];
[formDic setObject:self.orderGoodsNum forKey:@"orderGoodsNum"];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFJSONResponseSerializer new];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil];
manager.responseSerializer=[AFHTTPResponseSerializer serializer];
[manager POST:@"https://h5pay.jd.com/jdpay/saveOrder" parameters:formDic progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString *htmlstring=[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];
//將第二次請求出來的html字符串加載到webview
[self.webView loadHTMLString:htmlstring baseURL:[NSURL URLWithString:@"https://h5pay.jd.com/jdpay/saveOrder"]];
NSLog(@"WEB: %@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];