iOS开发中支付宝支付的集成(其实很简单)
2017-09-06 13:39
337 查看
最近项目中要使用支付宝支付,记得之前集成支付宝支付是挺麻烦的一件事,可这次集成支付宝支付却顺利、方便了许多,感谢支付宝开放平台的技术人员将集成文档写的越来越方便我们这些开发人员使用。先附上支付宝支付集成的官方文档https://docs.open.alipay.com/204/105295/
大概的集成流程就是1.下载官方demo 2.将AlipaySDK.bundle、AlipaySDK.framework两个框架导入到项目中并添加支付宝SDK依赖的系统库。
3.在AppDelegate中拷贝官方代码
// 仅支持iOS9以上系统
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,
id> *)options
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result = [[UMSocialManager
defaultManager]
handleOpenURL:url options:options];
if (!result) {
// 其他如支付等SDK的回调
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager
defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支付等SDK的回调
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return
YES;
}
4.在需要使用支付宝支付的控制器中导入头文件
5.在URL Types的URL Schemes中填写自己定义的具有唯一标识度的字符串,这是为了在支付宝App支付后能成功跳转回本App中,这个URL Schemes要和支付时使用的支付代码中schemeStr参数一致。
6.进行支付
//应用注册scheme,在AliSDKDemo-Info.plist定义URL
types
NSString *appScheme =
@"唯一标识符";
NSString * orderString = responseObject[@"data"][@"niu_index_response"];
// NOTE: 调用支付结果开始支付
[[AlipaySDK
defaultService] payOrder:orderString
fromScheme:appScheme
callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
NSString * memo = resultDic[@"memo"];
NSLog(@"===memo:%@", memo);
if ([resultDic[@"ResultStatus"]
isEqualToString:@"9000"]) {
[SVProgressHUD
showSuccessWithStatus:@"支付成功"];
}else{
[SVProgressHUD
showErrorWithStatus:memo];
}
}];
支付方法:
/**
* 支付接口
*
* @param orderStr 订单信息
* @param schemeStr 调用支付的app注册在info.plist中的scheme
* @param completionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
订单信息是通过和后台交互,我们自己的后台返回给我们的订单信息。
支付宝支付就这样集成了,个人感觉简单了许多,希望帮助到寻求帮助的朋友们!
大概的集成流程就是1.下载官方demo 2.将AlipaySDK.bundle、AlipaySDK.framework两个框架导入到项目中并添加支付宝SDK依赖的系统库。
3.在AppDelegate中拷贝官方代码
// 仅支持iOS9以上系统
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,
id> *)options
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result = [[UMSocialManager
defaultManager]
handleOpenURL:url options:options];
if (!result) {
// 其他如支付等SDK的回调
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager
defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支付等SDK的回调
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([url.host
isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK
defaultService] processOrderWithPaymentResult:url
standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return
YES;
}
4.在需要使用支付宝支付的控制器中导入头文件
# import <AlipaySDK/AlipaySDK.h>
5.在URL Types的URL Schemes中填写自己定义的具有唯一标识度的字符串,这是为了在支付宝App支付后能成功跳转回本App中,这个URL Schemes要和支付时使用的支付代码中schemeStr参数一致。
6.进行支付
//应用注册scheme,在AliSDKDemo-Info.plist定义URL
types
NSString *appScheme =
@"唯一标识符";
NSString * orderString = responseObject[@"data"][@"niu_index_response"];
// NOTE: 调用支付结果开始支付
[[AlipaySDK
defaultService] payOrder:orderString
fromScheme:appScheme
callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
NSString * memo = resultDic[@"memo"];
NSLog(@"===memo:%@", memo);
if ([resultDic[@"ResultStatus"]
isEqualToString:@"9000"]) {
[SVProgressHUD
showSuccessWithStatus:@"支付成功"];
}else{
[SVProgressHUD
showErrorWithStatus:memo];
}
}];
支付方法:
/**
* 支付接口
*
* @param orderStr 订单信息
* @param schemeStr 调用支付的app注册在info.plist中的scheme
* @param completionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
订单信息是通过和后台交互,我们自己的后台返回给我们的订单信息。
支付宝支付就这样集成了,个人感觉简单了许多,希望帮助到寻求帮助的朋友们!
相关文章推荐
- iOS开发支付集成之支付宝支付
- 李洪强iOS开发支付集成之支付宝支付
- iOS开发支付集成之支付宝支付
- iOS集成支付宝开发“抱歉,该商户未开通支付宝服务,无法支付”
- iOS开发支付集成之支付宝支付
- iOS开发支付集成之支付宝支付
- iOS开发之第三方支付支付宝支付教程,史上最新最全第三方支付宝支付方式实现、支付宝集成教程,支付宝实现流程
- iOS开发:2分钟快速集成支付宝快捷支付
- iOS 开发 新版支付宝支付集成开发详解和遇到的坑 2017-01-04
- iOS 支付宝支付开发集成流程,这里记载的是签名保存在前台的集成,
- iOS开发支付集成之支付宝支付
- iOS开发之第三方支付支付宝支付教程,史上最新最全第三方支付宝支付方式实现、支付宝集成教程,支付宝实现流程
- iOS开发集成支付宝支付遇到的"_EVP_DecodeBlock",referenced from:等13个错误的解决办法
- iOS开发支付集成之支付宝支付
- iOS开发:集成支付宝
- iOS支付宝,微信,银联支付集成封装(上)
- iOS开发:快速集成支付宝快捷支付
- IOS集成支付宝支付方法和问题的总结
- 集成iOS支付宝支付
- iOS开发之详解连连支付集成