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

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

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

这个是快捷支付SDK的位置,

点击 技术集成,就有一个集成开发包,下载后会有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 *)paramscompletion:(HYBSuccessDictBlock)completionerrorBlock:(HYBErrorBlock)errorBlock;// 再调这个方法来调起支付宝// 参数:一,调用- (void)requestWithParams:(NSDictionary *)params// completion:(HYBSuccessDictBlock)completion// errorBlock:(HYBErrorBlock)errorBlock 所返回来的参数// resultNumber 有以下几种状态:+ (void)alixPayWithResponse:(NSDictionary *)responsecompletion:(HYBSuccessIdBlock)completion;// 在appdelegate中调用+ (void)handleOpenURL:(NSURL *)url application:(UIApplication *)application;@end这里使用的是AFN网络库。

@implementation HYBAliapayHelper+ (AFHTTPRequestOperation *)requestWithParams:(NSDictionary *)paramscompletion:(HYBSuccessDictBlock)completionerrorBlock:(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 *)responseObjectcompletion:(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的条件。

在乎的是看风景的心情,旅行不会因为美丽的风景终止。

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

相关文章:

你感兴趣的文章:

标签云: