iOS集成支付宝支付

作者: LYPC_下里巴人 | 来源:发表于2017-09-23 09:02 被阅读88次

    前段时间把微信支付小小整理写了一下,时隔至今,看了一遍目录,微信和支付宝支付不是同时出现的么,怎么能只写一个(强迫症害死猫)

    下面请开始我的表演

    建议先看看这个官方的集成文档:App支付iOS集成流程

    1、逛逛官网介绍和一些注意事项,下载demo和sdk,按照集成文档放在自己项目里,该引入的依赖库不要遗漏,认真添加,有些工具类文件也可以从demo里直接拿过来用(模拟生成支付用的东西 真实的不需要 在后台处理),我最后整到项目里的是这些文件,请您过目:

    2、开始编写支付代码,这之前最好是要弄明白后台要做的事情 客户端要做的事情,沟通好狠重要,接着看代码:

    (1)引入头文件:

    #import#import "Order.h"

    #import "RSADataSigner.h"

    (2)调用后台获取支付宝支付的信息,这些东西一定在后台做,为了所谓的安全考虑,我们很乐意让后台来实现这个过程,

    // 选中商品调用支付宝极简支付

    - (void)doAlipay:(NSDictionary *)response {

    // 后台返回的字符串

    NSString *signedString = response[@"data"]; 

    if (signedString != nil) {

    // 这个在Xcode里面设置一下添加scheme:MeiFaAlipay

    NSString *appScheme = @"MeiFaAlipay";

    // 开始支付

    [[AlipaySDK defaultService] payOrder:signedString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

    NSLog(@"reslut = %@",resultDic);

    }];

    }

    }

    (3)以上是主要实现代码,支付成功的回掉老是不走,不知道为啥,支付结果我们UI设计了专门的支付成功页面,所以要拿到,我是在appdelegate.m中获取到支付成功或者时报发了一个通知来处理的,参考:

    #import <AlipaySDK/AlipaySDK.h>

    //9.0后的方法里获取支付结果回掉事件 

    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options {

    if ([url.host isEqualToString:@"safepay"]) {

    //跳转支付宝钱包进行支付,处理支付结果

    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

    NSLog(@"1、支付宝进行支付,处理支付结果:%@", resultDic);

    if ([resultDic[@"resultStatus"] isEqualToString:@"9000"]) {

    [[NSNotificationCenter defaultCenter] postNotificationName:@"AliPaySucssed" object:@"Y"];

    }else {

    [[NSNotificationCenter defaultCenter] postNotificationName:@"AliPayFaild" object:@"N"];

    }

    }];

    return YES;

    }

    }

    相关文章

      网友评论

        本文标题:iOS集成支付宝支付

        本文链接:https://www.haomeiwen.com/subject/dtoqextx.html