IOS 支付寶支付開發流程


一、看官方的Demo,那么看到,必須使用的是商戶app申請的時候會有的

 

這幾個東西由產品經理申請給你,如果遇到真不懂的,讓你自己申請(也算是對自己的信任,那就看着官方文檔一步步申請,這個沒什么困難的,做開發的我這里也不記了。沒什么意義。)

 

 二、集成支付寶到自己的工程中

集成?笑話,寫下來有什么意義,還不如看官方文檔,最方便的當然是cocoapods 幾分鍾搞定

根據自己的APP,修改下面的參數即可:

 

 

 

說實話,其實這些都是后台去弄的,前端只是點擊支付按鈕時候,請求后台,讓后台給你生成 orderstr 就行了,

-(void)alipayWith:(NSString*)orderStr{
    NSString *appScheme = @"zhifubao";
   
    // NOTE: 調用支付結果開始支付
    [[AlipaySDK defaultService] payOrder:orderStr fromScheme:appScheme callback:^(NSDictionary *resultDic) {
        NSLog(@"reslut = %@",resultDic);
       
        if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {
            
        }else{
            
        }
        
    }];
}

 

使用支付寶客戶端支付之后,無法返回原APP系統

1)在AppDelegate.m文件中,

#import <AlipaySDK/AlipaySDK.h>

-(BOOL)application:(UIApplication *)app openURL:(nonnull NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation{
     [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉支付寶錢包進行支付,處理支付結果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            NSLog(@"result = %@",resultDic);
            NSLog(@"支付寶客戶端支付結果result = %@",resultDic);
            if (resultDic && [resultDic objectForKey:@"resultStatus"] && ([[resultDic objectForKey:@"resultStatus"] intValue] == 9000)) {
                
                // 發通知帶出支付成功結果
                [[NSNotificationCenter defaultCenter] postNotificationName:@"alpayResult" object:resultDic];
            } else {
                
                // 發通知帶出支付失敗結果
                [[NSNotificationCenter defaultCenter] postNotificationName:@"alpayResult" object:resultDic];
            }
        }];
    }
    
    return YES;
}

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
     [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    if ([url.host isEqualToString:@"safepay"]) {
        //跳轉支付寶錢包進行支付,處理支付結果
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            if (resultDic && [resultDic objectForKey:@"resultStatus"] && ([[resultDic objectForKey:@"resultStatus"] intValue] == 9000)) {
                
                // 發通知帶出支付成功結果
              [[NSNotificationCenter defaultCenter] postNotificationName:@"alpayResult" object:resultDic];
            } else {
                
                // 發通知帶出支付失敗結果
              [[NSNotificationCenter defaultCenter] postNotificationName:@"alpayResult" object:resultDic];
            }
        }];
    }
    
    return YES;
}

這里面我是做了一個通知,告訴支付頁面支付結果的

 

 

(2)點擊項目名稱,點擊“Info”選項卡,在“URL Types”選項中,點擊“+”,在“URL Schemes”中輸入自己的APP標示,如:“alisdkdemo”。“alisdkdemo”來自於以下代碼:

支付代碼中的:

這里的URL Schemes中輸入的alisdkdemo,為測試demo,實際商戶的app中要填寫獨立的scheme,建議跟商戶的app有一定的標示度,要做到和其他的商戶app不重復,否則可能會導致支付寶返回的結果無法正確跳回商戶app

4、可能遇到的錯誤:

  1:支付寶交易訂單處理失敗 AL159

  注意:支付寶的金額只能精確到分,所以不能用小數點后面超過兩位的浮點型數字。

  所以:應該使用 %.2f 

  2:支付寶支付失敗:4000

  檢查訂單的各種參數,比如訂單ID寫錯為浮點型了。

  3:其他

  檢查各種參數和公匙密匙等等

 

 

補充一下,官方流程,做參考用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM