支付相關接口說明
支付接口
1.1
方法名稱:pay方法
方法原型:(void)payOrder:(NSString )orderStr fromScheme:(NSString )schemeStr callback:(CompletionBlock)completionBlock;
方法功能:提供給商戶快捷訂單支付功能。
NSString* scheme 商戶程序註冊的URL protocol,供支付完成後回調商戶程序使用。
(CompletionBlock)completionBlock 快捷支付開發包回調函數,返回免登、支付結果。本地未安裝支付寶客戶端,或未成功調用支付寶客戶端進行支付的情況下(走H5收銀臺),會通過該completionBlock返回支付結果。
NSString* orderString app支付請求參數字符串,主要包含商戶的訂單信息,key=value形式,以&連接。
/**
* 支付接口
*
* @param orderStr 支付訂單信息字串
* @param schemeStr 調用支付的app註冊在info.plist中的scheme
* @param completionBlock 支付結果回調Block,用於wap支付結果回調
跳轉支付寶支付時只有當processOrderWithPaymentResult接口的completionBlock爲nil時會使用這個bolock
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
/**
* 支付接口 v2
*
* @param orderStr 支付訂單信息字串
* @param dynamicLaunch 是否使用動態配置策略跳轉支付寶支付
* @param schemeStr 調用支付的app註冊在info.plist中的scheme
* @param completionBlock 支付結果回調Block,用於wap支付結果回調
跳轉支付寶支付時只有當processOrderWithPaymentResult接口的completionBlock爲nil時會使用這個bolock
*/
- (void)payOrder:(NSString *)orderStr
dynamicLaunch:(BOOL)dynamicLaunch
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
支付結果接口
方法名稱:處理客戶端方法
方法原型:-(void)processOrderWithPaymentResult:(NSURL*)resultUrl standbyCallback:(CompletionBlock)completionBlock;
方法功能:設備已安裝支付寶客戶端情況下,處理支付寶客戶端返回的url。
本地安裝了支付寶客戶端,且成功調用支付寶客戶端進行支付的情況下,會通過該completionBlock返回支付結果。
NSURL *resultUrl 支付寶客戶端回傳的url
CompletionBlock completionBlock 本地安裝了支付寶客戶端,且成功調用支付寶客戶端進行支付的情況下,會通過該completionBlock返回支付結果。
注意:請在APPDelegate的
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
中調用該方法,iOS9.0及以上請在- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
中調用該方法。
/**
* 處理支付寶app支付後跳回商戶app攜帶的支付結果Url
*
* @param resultUrl 支付寶app返回的支付結果url
* @param completionBlock 支付結果回調 爲nil時默認使用支付接口的completionBlock(即- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;這個方法中的completionBlock)
*/
- (void)processOrderWithPaymentResult:(NSURL *)resultUrl
standbyCallback:(CompletionBlock)completionBlock;
支付寶授權 2.0 相關接口
/**
* 快登授權2.0
*
* @param infoStr 授權請求信息字串
* @param schemeStr 調用授權的app註冊在info.plist中的scheme
* @param completionBlock 授權結果回調,需要調用方在appDelegate中調用processAuth_V2Result:standbyCallback:方法獲取授權結果
* 若在授權過程中,調用方應用被系統終止則此block無效(此時會調用'processAuth_V2Result:standbyCallback:'傳入的standbyCallback)
*/
- (void)auth_V2WithInfo:(NSString *)infoStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
/**
* 處理支付寶app授權後跳回商戶app攜帶的授權結果Url
*
* @param resultUrl 支付寶app返回的授權結果url
* @param completionBlock 授權結果回調,用於處理跳轉支付寶授權過程中商戶APP被系統終止的情況
*/
- (void)processAuth_V2Result:(NSURL *)resultUrl
standbyCallback:(CompletionBlock)completionBlock;
相關代碼
支付:(如果未安裝支付寶,調用下面方法,通過回調resultDic處理支付結果。)
// NOTE: 調用支付結果開始支付
[[AlipaySDK defaultService] payOrder:contentString fromScheme:@"AlipaySchemes" callback:^(NSDictionary *resultDic) {
NSLog(@"payWithAlipayWithReturnContent AlipaySDK callback reslut = %@",resultDic);
if ([resultDic[@"resultStatus"] intValue] == 9000) {
//訂單支付成功
NSLog(@"%@",@"--------訂單支付成功---------");
}else{
//訂單支付失敗
NSLog(@"%@",@"--------訂單支付失敗---------");
}
}];
支付結果:
未安裝支付寶客戶端時,通過下面方法的回調resultDic處理支付結果。
將
@implementation AppDelegate
中以下代碼中的 NSLog 改爲實際業務處理代碼:
// NOTE:iOS9之前使用
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([url.host isEqualToString:@"safepay"]) {
//跳轉支付寶錢包進行支付,處理支付結果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
if ([[resultDic valueForKey:@"resultStatus"] intValue] == 9000) {
//訂單支付成功
[[NSNotificationCenter defaultCenter] postNotificationName:@"paySuccess" object:nil];
}else{
//訂單支付失敗
[[NSNotificationCenter defaultCenter] postNotificationName:@"payFail" object:nil];
}
}];
}
return YES;
}
// NOTE: 9.0以後使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳轉支付寶錢包進行支付,處理支付結果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
if ([[resultDic valueForKey:@"resultStatus"] intValue] == 9000) {
//訂單支付成功
[[NSNotificationCenter defaultCenter] postNotificationName:@"paySuccess" object:nil];
}else{
//訂單支付失敗
[[NSNotificationCenter defaultCenter] postNotificationName:@"payFail" object:nil];
}];
}
return YES;
}
相關文章