IOS-支付宝

IOS-支付宝

 
一、使用支付宝进行一个完整的支付功能,大致有以下步骤:
与支付宝签约,获得商户ID(partner)和账号ID(seller)
下载相应的公钥私钥文件(加密签名用)
下载支付宝SDK
生成订单信息
调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道
支付完毕后返回支付结果给商户客户端和服务器
 
注意:我们主要负责下单,和处理支付结果
 
 
二、调用接口步骤

1.封装订单模型

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

// 生成订单描述

NSString *orderSpec = [order description];

 

2.签名

id<DataSigner> signer = CreateRSADataSigner(@“私钥key”);

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

NSString *signedString = [signer signString:orderSpec];

 

3.生成订单字符串

NSString *orderString = [NSString stringWithFormat:@”%@&sign=\”%@\”&sign_type=\”%@\””,

                         orderSpec, signedString, @”RSA”];

 

4.调用支付接口

AlixPay * alixpay = [AlixPay shared];

// appScheme:商户自己的协议头

int ret = [alixpay pay:orderString applicationScheme:appScheme];

 
 
代码:
 1 - (IBAction)buy {
 2     // 1.生成订单信息
 3     AlixPayOrder *order = [[AlixPayOrder alloc] init];
 4     order.partner = PartnerID; // 商户ID
 5     order.seller = SellerID; // 帐号ID
 6     
 7     order.tradeNO = @"2014082717183778587475"; // 订单ID(由商家自行制定)
 8     order.productName = self.deal.title; // 商品标题
 9     order.productDescription = self.deal.desc; // 商品描述
10     order.amount = [NSString stringWithFormat:@"%.2f", [self.deal.current_price floatValue]]; //商品价格
11     order.notifyURL =  @"http%3A%2F%2Fwwww.xxx.com"; // 回调URL
12     
13     // 2.签名加密
14     id<DataSigner> signer = CreateRSADataSigner(PartnerPrivKey);
15     NSString *signedString = [signer signString:[order description]];
16     
17     // 3.利用订单信息、签名信息、签名类型生成一个订单字符串
18     NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
19                              [order description], signedString, @"RSA"];
20     
21     // 4.打开支付宝,传递订单信息
22     [AlixLibService payOrder:orderString AndScheme:@"heituan" seletor:@selector(paymentResultDelegate:) target:self];
23 }

 

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109098.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • sql中decimal类型数据保留两位小数

    sql中decimal类型数据保留两位小数

    2022年7月20日
    14
  • 智能称体脂称实现(基本原理解释篇)[通俗易懂]

    (本文均出于个人理解而写,仅用于学习和交流,某些过程可能不一定正确,希望各位提出意见进行交流,共同进步)项目简介前段时间接触到一个项目,类似于现在网上热卖的那种智能称,如下图所示

    2022年4月11日
    51
  • kafka零拷贝原理_kafka常用命令

    kafka零拷贝原理_kafka常用命令Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。用kafka做存储层,为什么呢?一大堆可以做数据存储的MySQL、MongoDB、HDFS……因为kafka数据是持久化磁盘的,还速度快;还可靠、支持分布式……啥!用了磁盘,还速度快!!!没错,kafka就是速度无敌,本文将探究kafka无敌性能背后的秘密。首先要有个概念,kafka高性能的背后,是多方面协同后、最终的结果,kafka从宏观架构、分布式partition存储、ISR数据同步、以及“无孔不

    2022年9月21日
    5
  • MyBatisPlus IService详解

    IService的使用方法需要配置MyBatisPlus才能使用publicinterfaceUserService2extendsIService<User>{}@ServicepublicclassUserServiceImplextendsServiceImpl<UserMapper,User>implementsUserService2{}@RestControllerpublicclassUserController.

    2022年4月7日
    201
  • 宝塔服务器搭建网站教程_宝塔linux面板漏洞

    宝塔服务器搭建网站教程_宝塔linux面板漏洞腾讯云免费SSL证书是腾讯云为用户提供的一款免费一年使用的SSL证书,用起来方便、快捷。同时搭配现在很热门的建站神器:宝塔面板,即使小白也能在很短时间内搞定网站域名“小绿锁”。今天老魏详细讲解如何申请腾讯云免费SSL证书,并部署到宝塔面板中。一、注册帐号在腾讯云申请证书首先需要注册腾讯云账号并且完成实名认证。新用户请点我直达腾讯云官网,从右上角的【免费注册】,进入注册页面。注册后要先完成实名认证,…

    2022年9月9日
    4
  • AnalyticDB for MySQL 3.0 技术架构解析

    AnalyticDB for MySQL 3.0 技术架构解析企业数据需求不断变化,近年来变化趋势日益明显,从数据的3V特性看:体积,速度和变化;BigData强调数据量,PB级以上,是静态数据。而FastData在数据量的基础上,意味着速度和和变化,意味着客户可以更加实时化、更加快速地进行数据处理。在Forrester最近的一项研究中,超过75%的…

    2022年9月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号