tubiebutu的专栏

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加入之前的待签名数组中,此时得到的便是要请求给支付宝的全部数据。

最糟糕的行为是抱怨,最易见效 的努力是从自己做起。

tubiebutu的专栏

相关文章:

你感兴趣的文章:

标签云: