使用支付宝进行一个完整的支付功能,大致有以下步骤:

1 与支付宝进行签约,获得商户ID(partner)和账号ID(seller)

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

3 下载支付宝SDK

4 生成订单信息

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

6  支付完毕后返回支付结果给客户端和服务器

支付功能的实现 有两种方式:

1  支付宝的应用可以 用url 直接连接到 支付宝的官网 (当然后台是要进行处理的)

2  第二种就是添加支付宝的第三方了 首先 下载支付宝的demo

支付宝的demo 一般的常见问题解决

1 No architecutures to compile for (ONLY_ACTIVE_ARCH = YES, active arch = x86_64,VALID_ARCHS = i386)

出现这样的问题一般是 将 64 位编译进去就能解决了(这个问题只要你下载的是最新的demo一般很少见了 )

解决方案:

targets -> Architectures 下面的Valid Architectures 添加上 arm64

2 将支付宝的第三方添加到项目中的时候 有时 会出现 openssl 文件中的.h 文件报错 说此文件不能被找到

出现这样的问题是 的原因一般是添加的路径 不对

解决方案:

点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”搜索,对“Header Search Paths” 增加头文件路径:$(SRCRCOT)/项目名称 设置一下路径 一般都能解决。

3  Cannot find interface declaration for "NSObject", supercalss of 'Base64'

解决方案   打开报错的文件,增加头文件

#import <Foundation/Foundation.h>

基本上支付宝中的demo 里面的问题一般都会得到解决。然后 看着demo 跟实际的项目结合一下就ok 了

正式开始  支付宝教程:

(因为申请的工作不是我做的 所以就此过程就略了 )

1 将需要的文件,静态库等拖入工程中,这里有:include,libs,Utilities,libcrypto.a,libssl.a文件

2 添加 库

Linked Frameworks and Libraries  中 添加

libssl.a   libcrypto.a   SystemConfiguration.framework

AlipaySDK.framework

3  如果商户要在某个文件中使用给支付宝的SDK 类库,需要增加引用头文件

#import "Order.h"

#import "DataSigner.h"

#import <AlipaySDK/AlipaySDK.h>

4  后面的基本上都是 按照官方demo写的

接口调用步骤:

1.封装订单模型将商品信息赋予AlixPayOrder的成员变量

Order *order = [[Order alloc] init];

// 应用注册scheme,在项目的info.plist 定义URL types

NSString *appScheme = @"zhifu";

/生成订单描述

NSString *orderSpec = [order description];

2.签名:获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode

idsigner = CreateRSADataSigner(@“私钥key”);

NSString *signedString = [signer signString:orderSpec];

//传入订单描述 进行 签名

NSString *signedString = [signer signString:orderSpec];

3.生成订单字符串

NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec,signedString, @"RSA"];

4.调用支付接口

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) { }];

iOS 支付宝第三方使用步骤的更多相关文章

  1. [iOS]数据库第三方框架FMDB详细讲解

    [iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封 ...

  2. iOS支付宝支付集成

    概述 iOS支付宝支付集成 详细 代码下载:http://www.demodashi.com/demo/10729.html 支付宝和微信都是业界的老大哥,相信大家都有所觉得文档.SDK都是各种坑吧( ...

  3. iOS微信第三方登录实现

    iOS微信第三方登录实现   一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统.在进行微信OAuth2.0授权登录接入之前,在微信开 ...

  4. 调用支付宝第三方接口(沙箱环境) SpringMVC+Maven

    一.蚂蚁金服开放平台的操作 网址:https://open.alipay.com/platform/home.htm 支付宝扫码登陆

  5. Android 集成支付宝第三方登录

    前言: 在集成支付宝支付的时候遇到一点小麻烦,先在此记录供大家参考 1.授权 支付宝第三方登录需要在后台进行授权,在查看授权的时候我们一定要看清楚时候真的已经获得了权限(我在没有获取权限的情况下集成的 ...

  6. pycharm 安装第三方包步骤

    pycharm 安装第三方包步骤: 完成.

  7. iOS - (集成支付宝第三方SDK大坑总结)

    其实集成支付宝相对于集成微信支付来说,支付宝算是简单的了,后续有空再去研究微信支付,现目前先总结一下集成支付宝所遇到的坑,其实支付宝的坑也不算太多,细算下来大概5-6个左右,但是其报错方式有点恶心,不 ...

  8. iOS支付宝集成步骤;王刚韧的技术博客

  9. iOS 强大第三方资源库

    Github用法 git-recipesGit recipes in Chinese. 高质量的Git中文教程. lark怎样在Github上面贡献代码 my-git有关 git 的学习资料 giti ...

随机推荐

  1. HDFS体系架构

    Master-slaver结构,namenode是中心服务器维护着文件系统树和整个树内的文件目录, 负责整个数据集群的管理.datanode分布在不同的机架上,在客户端和namenode的调度下 存储 ...

  2. 【leetcode❤python】 189. Rotate Array

    #-*- coding: UTF-8 -*-#由于题目要求不返回任何值,修改原始列表,#因此不能直接将新生成的结果赋值给nums,这样只是将变量指向新的列表,原列表并没有修改.#需要将新生成的结果赋予 ...

  3. VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别

    在VB中,属性是可以有参数的,而VBA中属性使用参数非常常见.比如最常用的:Worksheet.Range("A1:A10")  VB的语法,使用参数的不一定是方法,也有可能是属性 ...

  4. RPM安装MySQL

    # wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.15-1.el6.x86_64.rpm-bundle.tar # tar x ...

  5. BLE教程 - 官方tutorial翻译

    关键术语和概念 1. Generic Attribute Profile(GATT)GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为"属性"的数据块.目前所有的B ...

  6. 防止SQL注入的方法

    方法1⃣️addslashes(); $username=addslashes($_POST['username']); 方法2⃣️mysql_escape_string(); 方法3⃣️开启魔术引号 ...

  7. Ubuntu 14.04下搜狗输入法崩溃重启

    pidof fcitx | xargs kill pidof sogou-qimpanel | xargs kill nohup fcitx >/dev/>/dev/null & ...

  8. html4,xhtml,html5发展历史

    SGML SGML 是一种很强大但很复杂的标记语言,HTML.XML 就是从中衍生出来的.SGML 的例子如下:<QUOTE TYPE="example"> typic ...

  9. OCP笔记001

    2. View the Exhibit to examine the description for the SALES table. Which views can have all DML ope ...

  10. PackageManager源码分析

    在android 4.4源码上进行的分析. 一.PackageManager如何产生的? 我们平时在代码中使用的context.getPackageManager() 那么这个PackageManag ...