支付宝当前最新版集成2.1.2版本

简介:

说道支付宝SDK集成就让人感觉到头疼,找个集成包都不好找,原来旧版本的支付宝SDK现在依然可以使用,但是

不支付64位,现在新版本的已经支付64位了。

这个是快捷支付SDK的位置,https://b.alipay.com/order/productDetail.htm?productId=2014110308141993&tabId=1#ps-tabinfo-hash

点击 技术集成,就有一个集成开发包,下载后会有SDK。


把集成包全部放到同一个文件夹中,如AlipaySDK2.1.2,

那么需要在工程配置中header path 中添加AlipaySDK2.1.2相对于工程的路径,否则会提示openssl/rsa.h不存在之类的提示。


接下来就是集成代码了。

我这里写了一个支付宝helper类

//
//  HYBAliapayHelper.h
//
//  Created by 黄仪标 on 14/12/10.
//  Copyright (c) 2014年 xiaoyaor. All rights reserved.
//

#import <Foundation/Foundation.h>

/*!
 * @brief  支付宝支付功能封装类,此类提供一键式调起支付宝功能,方便快捷
 *
 * @author haungyibiao
 */
@interface HYBAliapayHelper : NSObject

// 先调这个方法来获取服务器的数据
+ (AFHTTPRequestOperation *)requestWithParams:(NSDictionary *)params
               completion:(HYBSuccessDictBlock)completion
               errorBlock:(HYBErrorBlock)errorBlock;

// 再调这个方法来调起支付宝
// 参数:一,调用- (void)requestWithParams:(NSDictionary *)params
// completion:(HYBSuccessDictBlock)completion
// errorBlock:(HYBErrorBlock)errorBlock 所返回来的参数
// resultNumber 有以下几种状态:
+ (void)alixPayWithResponse:(NSDictionary *)response
                 completion:(HYBSuccessIdBlock)completion;

// 在appdelegate中调用
+ (void)handleOpenURL:(NSURL *)url application:(UIApplication *)application;

@end

这里使用的是AFN网络库。


@implementation HYBAliapayHelper

+ (AFHTTPRequestOperation *)requestWithParams:(NSDictionary *)params
                                   completion:(HYBSuccessDictBlock)completion
                                   errorBlock:(HYBErrorBlock)errorBlock {
  return [HYBHttpManager aliapayMerchantInfoParams:params completion:^(NSDictionary *resultDict) {
    if (completion) {
      completion(resultDict);
    }
  } errorBlock:^(NSError *error) {
    errorBlock(error);
  }];
}

// resultNumber 有以下几种状态:
// 0 表示成功,1表示未安装,2表示签名错误,3表示参数错误,4,失败原因,字符串类型
+ (void)alixPayWithResponse:(NSDictionary *)responseObject
                 completion:(HYBSuccessIdBlock)completion {
// 此处省略与SDK无关的代码
  
  /*
   9000 订单支付成功
   8000 正在处理中 
   4000 订单支付失败
   6001 用户中途取消
   6002 网络连接出错
   */ // 这个callback是使用HTML5网页版支付时的回调,如果是用客户端支付,是不会回调到这里的
  [[AlipaySDK defaultService] payOrder:payRequest fromScheme:@"XiaoYaoUserUrlSchemes" callback:^(NSDictionary *resultDic) {
    if (delegate.alipayResultBlock) {// html5回调处理
      NSNumber *number = @([resultDic[@"resultStatus"] integerValue]);
      delegate.alipayResultBlock(number);// 这里的Delegate是AppDelegate
    }
  }];
}

// 跳到支付宝应用后回调,这个是调用支付宝客户端时,会通过这个方法回调
+ (void)handleOpenURL:(NSURL *)url application:(UIApplication *)application {
  [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
    AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    
    DDLogVerbose(@"resultDic = %@", resultDic);
    if (delegate.alipayResultBlock) {// 跳到支付宝应用后回调
      NSString *status = resultDic[@"resultStatus"];
      DDLogVerbose(@"%@", status);
      NSNumber *number = @([status integerValue]);
      delegate.alipayResultBlock(number);
    }
  }];

  return;
}

- (NSError *)errorWithMessage:(NSString *)message {
  NSError *error = [[NSError alloc] initWithDomain:message code:0 userInfo:nil];
  NSLog(@"%@", [error description]);
  return error;
}


@end

这里需要特别注意的是两个callback的条件。
目录
相关文章
|
1月前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
Java
Springboot集成第三方jar快速实现微信、支付宝等支付场景
Springboot集成第三方jar快速实现微信、支付宝等支付场景
538 0
Springboot集成第三方jar快速实现微信、支付宝等支付场景
|
19天前
|
前端开发 JavaScript 数据挖掘
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)(下)
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)
29 1
|
5月前
|
Java 数据安全/隐私保护
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
Neo4j【付诸实践 01】SpringBoot集成报错org.neo4j.driver.exceptions.ClientException:服务器不支持此驱动程序支持的任何协议版本(解决+源代码)
105 1
|
19天前
|
存储 前端开发 安全
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)(上)
《Solidity 简易速速上手小册》第9章:DApp 开发与 Solidity 集成(2024 最新版)
54 0
|
3月前
|
消息中间件 SQL druid
最新版 springboot集成kafka
最新版 springboot集成kafka
32 0
|
9月前
|
分布式计算 资源调度 Hadoop
【Flink】版本 1.13+ 集成 Hadoop 问题
【Flink】版本 1.13+ 集成 Hadoop 问题
265 0
|
5月前
|
Java 开发工具
解决SpringBoot集成支付宝支付中文订单描述验签错误问题
解决SpringBoot集成支付宝支付中文订单描述验签错误问题
37 0
|
6月前
|
Java 数据库连接 Maven
SpringBoot2.x+mybatis plus3.x集成Activit7版本
SpringBoot2.x+mybatis plus3.x集成Activit7版本
36 0
|
6月前
|
设计模式 Java Maven
淘东电商项目(60) -聚合支付(集成支付宝)
淘东电商项目(60) -聚合支付(集成支付宝)
44 0

热门文章

最新文章