ios 支付宝支付成功后不跳回app
  ePD73KOpGJZI 2023年12月23日 16 0

iOS支付宝支付成功后不跳回App的实现方法

一、整体流程

首先,我们需要了解整个支付宝支付成功后不跳回App的流程。下面是一张简单的表格,展示了整个流程的步骤:

步骤 功能
1. App发起支付宝支付请求 App向支付宝发起支付请求,传递支付相关的参数。
2. 用户在支付宝App中支付 用户在支付宝App中完成支付操作并成功支付。
3. 支付宝向App发送回调 支付宝将支付结果以回调的方式发送给App。
4. App处理支付结果 App接收到支付宝的回调后,处理支付结果,可以进行本地逻辑处理或跳转到指定页面。

二、具体实现步骤

下面将详细介绍每一步需要做什么,并给出相应的代码示例。

1. App发起支付宝支付请求

首先,我们需要在App中发起支付宝支付请求。这需要使用AlipaySDK提供的接口来完成。

// 引入AlipaySDK头文件
#import <AlipaySDK/AlipaySDK.h>

// 构建支付宝支付请求数据
NSString *orderString = @"<支付宝订单信息>";

// 调用支付宝SDK发起支付请求
[[AlipaySDK defaultService] payOrder:orderString fromScheme:@"<你的AppScheme>" callback:^(NSDictionary *resultDic) {
    // 支付结果回调处理
    [self handleAlipayResult:resultDic];
}];

其中,orderString是支付宝订单信息,可以由服务器生成并传递给App。<你的AppScheme>是你在Info.plist中设定的URL Scheme,用于支付宝支付完成后跳回App。

2. 用户在支付宝App中支付

用户会在支付宝App中完成支付操作,这部分由支付宝App内部处理,我们无需干预。

3. 支付宝向App发送回调

支付宝支付完成后,会以回调的方式将支付结果发送给App。我们需要在AppDelegate中实现相关的回调方法。

// AppDelegate.m
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    // 处理支付宝回调URL
    if ([url.host isEqualToString:@"safepay"]) {
        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
            // 支付结果回调处理
            [self handleAlipayResult:resultDic];
        }];
    }
    return YES;
}

AppDelegateapplication:openURL:options:方法中,我们判断URL的host是否为safepay,如果是,则调用支付宝SDK的processOrderWithPaymentResult:standbyCallback:方法处理支付结果。

4. App处理支付结果

在上一步中,我们已经将支付结果传递给了handleAlipayResult:方法,现在我们需要根据支付结果进行相应的处理。可以根据实际需求进行自定义操作,比如显示支付结果页面、刷新订单列表等。

- (void)handleAlipayResult:(NSDictionary *)resultDic {
    NSInteger resultStatus = [resultDic[@"resultStatus"] integerValue];
    if (resultStatus == 9000) {
        // 支付成功
        // 进行相应的处理逻辑,比如跳转到支付成功页面
        // [self showPaymentSuccessViewController];
    } else {
        // 支付失败
        // 进行相应的处理逻辑,比如显示支付失败提示
        // [self showPaymentFailureAlert];
    }
}

handleAlipayResult:方法中,我们可以根据resultDic中的resultStatus字段判断支付结果,9000表示支付成功,其他状态码表示支付失败。根据实际情况进行相应的处理逻辑即可。

三、类图

下面是支付宝支付成功后不跳回App的类图,使用mermaid语法绘制:

classDiagram
    class App {
        - orderString : String
        + pay()
        + handleAlipayResult(resultDic: NSDictionary)
    }
    class AppDelegate {
        + application(application: UIApplication, openURL url
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: ios的ui框架该怎么设计 下一篇: ios点九图
  1. 分享:
最后一次编辑于 2023年12月23日 0

暂无评论

推荐阅读
  529IrGbiySY6   2023年12月23日   49   0   0 AppUIiosAppUIios
  f0yUGNPhZjqd   2023年12月23日   18   0   0 androidAppAppandroid
ePD73KOpGJZI