• iOS开发技术之支付宝支付


    一、支付宝支付简易流程:

    用户 —》商户客户端—》支付宝客户端SDK —》支付宝服务端 —》商户服务端 —》支付宝服务端SDK

     

    二、支付宝支付顺序流程:

    1.用户选好了商品后,点击提交订单,选择使用支付宝付款。

    2.手机客户端(用户APP)把用户选择的商品的信息传给后台服务器。

    3.后台的服务器将各种数据拼接签名后生成一个签名后的字符串,回传到客户端APP上。

    4.用户点击确认支付按钮,调用手机支付宝客户端(手机上装的支付宝APP),利用后台传过来的那个参数调起支付宝,让支付宝客户端传给他们服务器交互,进行付款。(这一步是支付宝自己完成的,安全性高)

    5.支付宝的服务器将支付的结果(可能成功也可能不成功)返回给手机支付宝客户端和你们公司的后台服务器。

    6.你们公司后台服务器收到后一般是更新下数据信息(这个信息不用管),手机支付宝客户端会显示一下支付成功,咱们的客户端也可以显示一个订单支付成功之类的东西(就像在手机12306订票,用支付宝支付后支付宝客户端会说一次支付成功,12306也会说一次支付成功,咱们就像12306客户端一样,需要再说一次订单支付成功)。

    iOS客户端:

    • 调用支付宝支付接口
    • 处理支付宝返回的支付结果
    • 服务器端:
    • 生成订单(可以在iOS客户端内生成,也可以在服务器端生成)
    • 调用支付宝支付接口,发送订单
    • 处理支付宝返回的支付结果

     

    二、集成支付宝SDK的步骤:

    1、向支付宝申请,与支付宝签约,获得商户ID(partner)和账号ID(seller)

    2、下载相应的公钥私钥文件(加密签名用)

    3、下载支付宝SDK

    4、生成订单信息,签名加密

    5、调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道

    支付完毕后,支付宝客户端会自动跳回到原来的应用程序

    6、在原来的应用程序中显示支付结果给用户看

     

    三、数据交互:

    1、构造订单数据并签名

    2、发送请求数据

    3、支付宝移动支付SDK对请求数据进行处理

    4、返回处理的数据结果

    5、对获取的数据结果进行处理

     

     

    四、应用支付总体步骤:

    1、支付宝开放平台创建应用

    https://open.alipay.com/platform/home.htm

     

    a. 登录支付宝账户,创建一个新的应用

    b. 设置应用信息,可以修改,也可以在上线时再设置

    c. 配置应用环境(生成器生成的公钥在这进行设置,iOS使用原始私钥,andriod使用pkcs8私钥)

    d. 参照文档,下载生成器

    e. 私钥生成器的使用

    f. 生成公钥私钥后,将公钥粘贴进应用环境的,应用公钥中(这一步需要发送手机号验证码确认后,才能进行公钥设置)

    g. 给应用配置相应的功能

    添加功能->选择相应功能—>添加完成

     

    2、签约移动支付功能

    https://doc.open.alipay.com/doc2/detail.htm?treeId=58&articleId=103542&docType=1

     

    3、接入支付前的准备工作

    a. 商户密钥管理(支付宝商户标识(如partnerID、APPID等)

    https://doc.open.alipay.com/doc2/detail.htm?treeId=58&articleId=103543&docType=1

    b.生成RSA私钥和公钥(安卓使用pkcs8私钥)

    https://doc.open.alipay.com/doc2/detail.htm?treeId=58&articleId=103242&docType=1

    c.上传RSA公钥

    https://doc.open.alipay.com/doc2/detail.htm?treeId=58&articleId=103578&docType=1

     

    4、配置官方Demo,查看案例

    https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.O0PgAV&treeId=54&articleId=104509&docType=1

     

    5、集成项目,代码实现

    支付宝集成流程详解

    https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.mCFv8i&treeId=193&articleId=105295&docType=1

     

    步骤1:调用order.m里的函数description将商品信息拼接成字符串作为待签名字符串NSString authInfoStr = [authInfo description];*步骤2:使用类CreateRSADataSigner,调用signString签名函数做签名id<DataSigner> signer = CreateRSADataSigner(privateKey); 步骤3:把签名结果赋值给参数sign,并把sign加入之前的待签名数组中,此时得到的便是要请求给支付宝的全部数据。**authInfoStr = [NSString stringWithFormat:@"%@&sign=%@&sign_type=%@", authInfoStr, signedString, @"RSA"];

    步骤4:调用(AlipaySDK *)defaultService类下面的支付接口函数,唤起支付宝支付页面。

    [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {NSLog(@"reslut = %@",resultDic);}];

    步骤5:当这笔交易被买家支付成功后支付宝收银台上显示该笔交易成功,并提示用户返回。此时在APAppDelegate.m的 - (BOOL)application:(UIApplication )application openURL:(NSURL )url sourceApplication:(NSString )sourceApplication annotation:(id)annotation 中调用获取返回数据的代码【iOS9.0以上(包括iOS9.0)需要在 - (BOOL)application:(UIApplication )app openURL:(NSURL )url options:(NSDictionary<NSString, id> )options 中执行 】:[[AlipaySDK defaultService]processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary resultDic) {NSLog(@"result = %@",resultDic);//返回的支付结果}];

  • 相关阅读:
    Google 地图小例子
    实现网站的中英文转换
    必须掌握的八个【cmd 命令行】
    C#发送email
    sql 参数化查询,添加,删除
    SqlDataReader使用序数索引器
    DataSet数据筛选和排序
    Connect Propertity
    SqlDataReader读取数据
    SqlDataReader读取数据
  • 原文地址:https://www.cnblogs.com/yuhao309/p/7281816.html
Copyright © 2020-2023  润新知