IOS 支付宝支付开发流程

本文详细介绍了如何在iOS应用中集成支付宝支付功能,包括申请必要参数、集成步骤、常见错误及解决办法,以及如何处理支付后的回调,确保应用程序能正确接收支付结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、看官方的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:其他

  检查各种参数和公匙密匙等等

 

 

补充一下,官方流程,做参考用

 

转载于:https://www.cnblogs.com/fengfeng159/p/11114381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值