1添加支付寶源文件和庫文件AlipayOrder.h AlipayOrder.m AlipayResult.h AlipayResult.m AlixLibService.h PartnerConfig.h AlipayRsaLib.a Alixpay.bundle AlixPaylib_arc.a libcrypto.a libssl.a json
2添加json類庫和demo中的rsa簽名 json文件夾和RSA文件夾app
3添加相關類庫 CoreGraphics.framework Foundation.framework UIKit.framework CFNetwork.framework SystemConfiguration.framework 函數
4在delegate文件中加入支付回調函數url
//獨立客戶端回調函數spa
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {3d
[self parse:url application:application];orm
return YES;ip
}支付寶
- (void)parse:(NSURL *)url application:(UIApplication *)application {ssl
//結果處理
AlixPayResult* result = [self handleOpenURL:url];
if (result)
{
if (result.statusCode == 9000)
{
/*
*用公鑰驗證簽名 嚴格驗證請使用result.resultString與result.signString驗籤
*/
//交易成功
NSString* key = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRAFljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQEB/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5KsiNG9zpgmLCUYuLkxpLQIDAQAB";
id<DataVerifier> verifier;
verifier = CreateRSADataVerifier(key);
if ([verifier verifyString:result.resultString withSign:result.signString])
{
//驗證簽名成功,交易結果無篡改
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:result.statusMessage
delegate:nil
cancelButtonTitle:@"肯定"
otherButtonTitles:nil];
[alertView show];
alertView.delegate = self;
//驗籤錯誤
else {
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"簽名錯誤"
delegate:nil
cancelButtonTitle:@"肯定"
otherButtonTitles:nil];
[alertView show];
}
}
//若是支付失敗,能夠經過result.statusCode查詢錯誤碼
else {
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:result.statusMessage
delegate:nil
cancelButtonTitle:@"肯定"
otherButtonTitles:nil];
[alertView show];
}
}
else
{
//交易失敗
}
NSLog(@"1111%i",result.statusCode);
NSLog(@"222%@",result.description);
NSLog(@"333%@",result);
NSLog(@"444%@",result.resultString);
}
- (AlixPayResult *)resultFromURL:(NSURL *)url {
NSString * query = [[url query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
#if ! __has_feature(objc_arc)
return [[[AlixPayResult alloc] initWithString:query] autorelease];
#else
return [[AlixPayResult alloc] initWithString:query];
#endif
}
- (AlixPayResult *)handleOpenURL:(NSURL *)url {
AlixPayResult * result = nil;
if (url != nil && [[url host] compare:@"safepay"] == 0) {
result = [self resultFromURL:url];
}
return result;
}
5設置url 在target中的info中,添加URL Types