5.2.1 iOS
SDK
1. 导入代码
并导入到项目工程中。
AlipaySDK.bundleAlipaySDK.framework
#import <AlipaySDK/AlipaySDK.h>
AlipaySDK.bundleAlipaySDK.framework
Order *order = [[Order alloc] init];order.partner = partner;order.seller = seller;order.tradeNO = [self generateTradeNO]; //order.productName = product.subject; //
order.amount = [NSString stringWithFormat:@"%.2f",product.price]; //商品价格
第8页
移动支付接口 SDK2.0 标准版附录文档
order.notifyURL = @""; //回调URLorder.service = @"mobile.securitypay.pay";order.paymentType = @"1";order.inputCharset = @"utf-8";
order.itBPay = @"30m";
URL typesNSString *appScheme = @"alisdkdemo";
//将商品信息拼接成字符串NSString *orderSpec = [order description];NSLog(@"orderSpec = %@",orderSpec);
RSAbase64编码和 UrlEncodeid<DataSigner> signer = CreateRSADataSigner(privateKey);NSString *signedString = [signer signString:orderSpec];
NSString *orderString = nil;if (signedString != nil) {
orderString = [NSStringstringWithFormat:@"%@&sign=\&;%@\&;&sign_type=\&;%@\&;",
orderSpec, signedString, @"RSA"];
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appSchemecallback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
}];
[tableView deselectRowAtIndexPath:indexPath animated:YES];}
AliSDKDemo\Order.hAliSDKDemo\Order.m
处理方法。如示例 AliSDKDemo\APAppDelegate.m文件中,增加引用代码:
#import <AlipaySDK/AlipaySDK.h>
移动支付接口 SDK2.0 标准版附录文档
– (BOOL)application:(UIApplication *)application openURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
//如果极简SDK不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给SDKif ([url.host isEqualToString:@"safepay"]) {
[[AlipaySDK defaultService] processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);}];
}
[[AlipaySDK defaultService] processAuthResult:urlstandbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);}];
}
return YES;}
(1) 关于签名代码问题
libcrypto.a
libssl.a
这些文件是为示例签名所在客户端本地使用。出于安全考虑,请商户尽量把私钥保存在服务端,在服务端进行签名验签。
(2) 如果遇到运行后报错,类似于以下提示信息:Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’
那么需要打开报错了的文件,增加头文件。#import <Foundation/Foundation.h>
(3) 如果商户要在某个文件中使用支付宝的SDK类库,需增加引用头文件。
#import <AlipaySDK/AlipaySDK.h>
Header Search Paths
第10页
移动支付接口 SDK2.0 标准版附录文档
Link Binary with Librarles
第11页
移动支付接口 SDK2.0 标准版附录文档
URL TypesURL SchemesNSString *appScheme = @"alisdkdemo";。
图5-3配置URL Schemes
NSString *partner = @"";NSString *seller = @"";NSString *privateKey = @"";
参数
含义
partner
2088开头由16
seller
支付宝收款账号,手机号码或邮箱格式。
private_key
7.2 RSA密钥生成与使用”。
第12页
这些参数配置是为客户端签名功能服务的,仅作为示例使用。商户在接入支付宝产品时,请把这些信息通过商户项目自己的服务端传递。
4. 代码示例运行逻辑
order.m
如:
sign加入之前的待签名数组中,此时得到的便是要请求给支付宝的全部数据。
最糟糕的行为是抱怨,最易见效 的努力是从自己做起。