美文网首页
3.支付宝支付介绍

3.支付宝支付介绍

作者: 峰子1994 | 来源:发表于2017-11-04 15:11 被阅读21次

    1.前言

    1.推出支付宝支付的详细流程。
    
    image.png

    2.支付宝的使用步骤:

    1.我们下载和查看支付宝支付的Demo。
    2.我们直接进入到支付宝的支付平台参考进集成的支付宝:
        [https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.jIUkAQ&treeId=59&articleId=103675&docType=1](https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.jIUkAQ&treeId=59&articleId=103675&docType=1)
    
    image.png
    1. 集成过程基本就是按照上面的四个流程就可以完成了IOS的支付宝的支付
      4.我们的世界集成的步骤:
      <1>点击下载SDK和Demo
      image.png
      <2>进入到下一个界面,网址给出了https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
      image.png
      <3>下载之后解压:
      image.png
      <4>运行Demo之后:
      image.png
      <4>我们会发现,不管我们点击那个Cell都会弹出这个的信息提示框。我们需要在源码中找到弹出这个信息的地方,这里顺便教大家一个快速找到目标代码的方法。
      你看弹出框提示的是:"缺少partner或者seller或者私钥",然后就这样:
      image.png
      <5>  从上面图中的148、149、150行代码,我们可以看到,我们需要三个参数的值:partner、seller、privateKey。
      那么这三个参数就需要商户app申请的:
      image.png

    3.开始我们自己的项目:

    1.添加SDK:
    
    image.png
    2.添加SDK依赖库:
    
    image.png
    3.我们创建一个订单对象:AlipayOrder:
    
    image.png
    4.我们把支付宝Demo中的订单对象拷贝进去
    
    image.png
    5.我们来处理支付的代码:
    
    image.png
    6.下面的代码是拷贝的主要的代码就在里面了
    
    • (void)aliPay {
      2 // 支付宝支付
      3 /* 在调用支付宝支付之前,需要我们将相关订单参数发送至我们的后台服务器,由后台服务器进行签名处理,
      4 并返回客户端所有相关参数,客户端直接使用参数调起支付宝支付。
      5 /
      6 /

      7 商户的唯一的parnter和seller。
      8 签约后,支付宝会为每个商户分配一个唯一的 parnter 和 seller。
      9 /
      10
      11 /
      ============================================================================
      /
      12 /
      =======================需要填写商户app申请的===================================/
      13 /
      ============================================================================/
      14 NSString partner = @"";
      15 NSString seller = @"";
      16 NSString privateKey = @"";
      17 /
      ============================================================================
      /
      18 /
      ============================================================================
      /
      19 /============================================================================/
      20
      21 //partner和seller获取失败,提示
      22 if ([partner length] == 0 ||
      23 [seller length] == 0 ||
      24 [privateKey length] == 0)
      25 {
      26 UIAlertView alert = [[UIAlertView alloc] initWithTitle:@"提示"
      27 message:@"缺少partner或者seller或者私钥。"
      28 delegate:self
      29 cancelButtonTitle:@"确定"
      30 otherButtonTitles:nil];
      31 [alert show];
      32 return;
      33 }
      34
      35 /

      36 *生成订单信息及签名
      37 */
      38 //将商品信息赋予AlixPayOrder的成员变量
      39 AlipayOrder *order = [[AlipayOrder alloc] init];
      40 order.partner = partner;
      41 order.seller = seller;
      42 order.tradeNO = @"1234567890"; //订单ID(由商家自行制定)
      43 order.productName = @"测试商品标题"; //商品标题
      44 order.productDescription = @"测试商品描述"; //商品描述
      45 order.amount = @"0.01"; //商品价格
      46 order.notifyURL = @"http://www.xxx.com"; //回调URL
      47
      48 order.service = @"mobile.securitypay.pay";
      49 order.paymentType = @"1";
      50 order.inputCharset = @"utf-8";
      51 order.itBPay = @"30m";
      52 order.showUrl = @"m.alipay.com";
      53
      54 //应用注册scheme,在AlixPayDemo-Info.plist定义URL types
      55 NSString *appScheme = @"alisdkdemo";
      56
      57 //将商品信息拼接成字符串
      58 NSString *orderSpec = [order description];
      59 NSLog(@"orderSpec = %@",orderSpec);
      60
      61 //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
      62 // id<DataSigner> signer = CreateRSADataSigner(privateKey);
      63
      64 // 签名值由服务器处理并返回客户端
      65 NSString *signedString = @"xxxxxxx_sign";
      66
      67 //将签名成功字符串格式化为订单字符串,请严格按照该格式
      68 NSString *orderString = nil;
      69 if (signedString != nil) {
      70 orderString = [NSString stringWithFormat:@"%@&sign="%@"&sign_type="%@"",
      71 orderSpec, signedString, @"RSA"];
      72
      73 // 发起支付
      74 [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
      75 NSLog(@"支付结果 reslut = %@",resultDic);
      76 }];
      77 }
      78
      79 }

    7.我们需要应用中注册appShceme,这个appShceme可以从下面的代码中先谢谢

    ![image.png](https://img.haomeiwen.com/i2182103/6b574b07728f8e81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    8.添加appScheme

    ![image.png](https://img.haomeiwen.com/i2182103/f5734a1b1341f43d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    1. 支付代码处理之后,我们处理回调结果,我们需要在Appdelegate中添加支付宝头文件#import <AlipaySDK/AlipaySDK.h>并添加处理回到结果的代理方法:
    ![image.png](https://img.haomeiwen.com/i2182103/b3790f9c51c41ac9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    10.别忘了添加按钮监听和设置商户ID的参数

    ![image.png](https://img.haomeiwen.com/i2182103/15d6ea81bdac9ac1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    11.如果我们在使用支付宝支付的时候,如果我们手机安装了支付宝app,就会调用支付宝进行支付。
    如果我们手机没有安装了支付宝app,就会调用H5界面进行支付。

    
    
    

    相关文章

      网友评论

          本文标题:3.支付宝支付介绍

          本文链接:https://www.haomeiwen.com/subject/zuwfmxtx.html