ios支付宝支付--看我就够了

来源:互联网 发布:基础护肤知乎 编辑:程序博客网 时间:2024/04/29 16:36

神灯产品用户体验群:573431381

微信支付请看这里
http://blog.csdn.net/xoxo_x/article/details/52129632

本文文章将介绍支付宝支付,当第三方支付成为主流的时候,SDK的操作都是傻瓜似的操作,如果老板让你集成第三方SDk那么你不用害怕,全都是简单的要命。

当然现阶段,直播,互动直播,实时音视频,还是有一定难度的,其难点在于,、:

1.了解并熟悉第三方的SDk的接口。

2.熟悉其Demo中页面的跳转的逻辑关系。

3.将Demo拖入工程中如何解决其他SDk重复的问题,如何解决一些文件的冲突问题,是否支持bitcode,是否需要c环境,是否需要URL schemes进行app之间传值

4.自己如何根据老板,或者UI的设计,进行页面的调试,如何添加Demo中没有的一些功能,比如:某直播的SDK没有礼物功能,我是这样做的http://blog.csdn.net/xoxo_x/article/details/52044388。

5.记得一句话:所有的程序都是源于生活,一切的SDk接口都是完成某件事的必要操作,比如现实生活中你要买东西首先你要知道三点:
1、东西是什么
2、价格是多少
3、把钱给谁
4、给了钱之后,他是怎么知道的
这就对应支付宝当中的:
1、商品信息
2、价格
3、商户ID
4、信息通知

附图:开始进行支付宝支付。
https://app.alipay.com/market/productIndex.htm
这里写图片描述
这里写图片描述
下载SDK
····链接
https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
这里写图片描述
这里写图片描述

下载完成之后,开始我们程序员该做的事情,,,,前面的都不属于我们,太Low

解压缩之后:
是这样的这里写图片描述
更新日志不用看,直接看服务端的Demo,然后解压缩ios端的。
这里写图片描述

Demo可以运行的。大家可以运行一下试试,整体来说,支付宝支付比较简单。

服务端   负责生成订单及签名,及接受支付异步通知。客户端   负责使用服务端传来的订单信息调用支付宝支付接口,及根据SDK同步返回的支付结果展示结果页。

1、添加支付宝所需的库
这里写图片描述

2、在plist文件中添加

<key>NSAppTransportSecurity</key>    <dict>        <key>NSExceptionDomains</key>        <dict>            <key>alipay.com</key>            <dict>                <key>NSIncludesSubdomains</key>                <true/>                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>                <true/>                <key>NSTemporaryExceptionMinimumTLSVersion</key>                <string>TLSv1.0</string>                <key>NSTemporaryExceptionRequiresForwardSecrecy</key>                <false/>            </dict>            <key>alipayobjects.com</key>            <dict>                <key>NSIncludesSubdomains</key>                <true/>                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>                <true/>                <key>NSTemporaryExceptionMinimumTLSVersion</key>                <string>TLSv1.0</string>                <key>NSTemporaryExceptionRequiresForwardSecrecy</key>                <false/>            </dict>        </dict>    </dict>

注意添加URL schemes 值为自己定义的,需要有自己的特点,以免和其他的app重复,导致支付之后没有办法跳转到自己app,,官方是这么说的

这里写图片描述

好了,配置结束了,在你需要支付的地方加上如下代码

#pragma mark -#pragma mark   ==============点击订单模拟支付行为==============////选中商品调用支付宝极简支付//- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{    /*     *点击获取prodcut实例并初始化订单信息     */    Product *product = [self.productList objectAtIndex:indexPath.row];    /*     *商户的唯一的parnter和seller。     *签约后,支付宝会为每个商户分配一个唯一的 parnter 和 seller。     *//*============================================================================*//*=======================需要填写商户app申请的===================================*//*============================================================================*/    NSString *partner = @"";    NSString *seller = @"";    NSString *privateKey = @"";/*============================================================================*//*============================================================================*//*============================================================================*/    //partner和seller获取失败,提示    if ([partner length] == 0 ||        [seller length] == 0 ||        [privateKey length] == 0)    {        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"                                                        message:@"缺少partner或者seller或者私钥。"                                                       delegate:self                                              cancelButtonTitle:@"确定"                                              otherButtonTitles:nil];        [alert show];        [tableView deselectRowAtIndexPath:indexPath animated:YES];        return;    }    /*     *生成订单信息及签名     */    //将商品信息赋予AlixPayOrder的成员变量    Order *order = [[Order alloc] init];    order.partner = partner;    order.sellerID = seller;    order.outTradeNO = [self generateTradeNO]; //订单ID(由商家自行制定)    order.subject = product.subject; //商品标题    order.body = product.body; //商品描述    order.totalFee = [NSString stringWithFormat:@"%.2f",product.price]; //商品价格    order.notifyURL =  @"http://www.xxx.com"; //回调URL    order.service = @"mobile.securitypay.pay";    order.paymentType = @"1";    order.inputCharset = @"utf-8";    order.itBPay = @"30m";    order.showURL = @"m.alipay.com";    //应用注册scheme,在AlixPayDemo-Info.plist定义URL types    NSString *appScheme = @"alisdkdemo";    //将商品信息拼接成字符串    NSString *orderSpec = [order description];    NSLog(@"orderSpec = %@",orderSpec);    //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode    id<DataSigner> signer = CreateRSADataSigner(privateKey);    NSString *signedString = [signer signString:orderSpec];    //将签名成功字符串格式化为订单字符串,请严格按照该格式    NSString *orderString = nil;    if (signedString != nil) {        orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",                       orderSpec, signedString, @"RSA"];        [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {            NSLog(@"reslut = %@",resultDic);        }];    }    [tableView deselectRowAtIndexPath:indexPath animated:YES];}
NSString *partner = @"";NSString *seller = @"";NSString *privateKey = @"";

这是你注册支付宝的时候支付宝给你返回的,添上就可以。
为了避免出错,Demo中的文件能拖得就都拖过来。
这里写图片描述

最后注意这一点:
这里写图片描述

好了支付宝集成完毕。

1 0
原创粉丝点击