iOS支付宝 app支付流程

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.8bz1nF&treeId=193&articleId=105295&docType=1
1.在Build Phases选项卡的Link Binary With Libraries中,增加以下依赖:

1.png

2.拷贝文件到项目文件夹下,如
2.png

3.头文件

#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <AlipaySDK/AlipaySDK.h>
#import "Order.h"
#import "APAuthV2Info.h"
#import "DataSigner.h"

4.组装请求信息。

//将商品信息赋予AlixPayOrder的成员变量
Order* order = [Order new];
 
// NOTE: app_id设置
order.app_id = appID;
 
// NOTE: 支付接口名称
order.method = @"alipay.trade.app.pay";
 
// NOTE: 参数编码格式
order.charset = @"utf-8";
 
// NOTE: 当前时间点
NSDateFormatter* formatter = [NSDateFormatter new];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
order.timestamp = [formatter stringFromDate:[NSDate date]];
 
// NOTE: 支付版本
order.version = @"1.0";
 
// NOTE: sign_type设置
order.sign_type = @"RSA";
 
// NOTE: 商品数据
order.biz_content = [BizContent new];
order.biz_content.body = @"我是测试数据";
order.biz_content.subject = @"1";
order.biz_content.out_trade_no = [self generateTradeNO]; //订单ID(由商家自行制定)
order.biz_content.timeout_express = @"30m"; //超时时间设置
order.biz_content.total_amount = [NSString stringWithFormat:@"%.2f", 0.01]; //商品价格
 
//将商品信息拼接成字符串
NSString *orderInfo = [order orderInfoEncoded:NO];
NSString *orderInfoEncoded = [order orderInfoEncoded:YES];
NSLog(@"orderSpec = %@",orderInfo);
 
// NOTE: 获取私钥并将商户信息签名,外部商户的加签过程请务必放在服务端,防止公私钥数据泄露;
//       需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
id<DataSigner> signer = CreateRSADataSigner(privateKey);
NSString *signedString = [signer signString:orderInfo];
 
// NOTE: 如果加签成功,则继续执行支付
if (signedString != nil) {
    //应用注册scheme,在AliSDKDemo-Info.plist定义URL types
    NSString *appScheme = @"alisdkdemo";
     
    // NOTE: 将签名成功字符串格式化为订单字符串,请严格按照该格式
    NSString *orderString = [NSString stringWithFormat:@"%@&sign=%@",
                             orderInfoEncoded, signedString];
     
    // NOTE: 调用支付结果开始支付
    [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
        NSLog(@"reslut = %@",resultDic);
    }];
}

5.运行出现错误,出现rsa.h file not found ,在header search path路径解决后, 然后出现openssl/asn1.h file not found, 解决

$(SRCROOT)/项目名
$(PROJECT_DIR)/项目名/Utils/Alipay    //openssl文件路径
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1看了支付宝文档,写的很详细本以为会比微信更容易些,没想到这一入坑,半天没爬起来。支付宝SDK下载地址:https...
    青鸟evergreen阅读 1,819评论 0 4
  • 支付宝开放平台地址https://doc.open.alipay.com/doc2/detail.htm?spm=...
    X勒个F阅读 2,286评论 2 0
  • 近日,有不少的媒体报道了有关京城81号完成翻修,并对外招租其价格千万令人咋舌。而有关的消息已将得到了有关媒体...
    顺意明目护眼液阅读 4,059评论 0 0
  • 记得刚刚和她恋爱时,她说要永远和我在一起,可后来我工作忙加上我偷偷的买房子,那时她刚刚实习,我也刚刚毕业没多久,我...
    你的爱Imnot阅读 1,796评论 0 0
  • 你相信爱情吗?如果,有一天遇到了心爱的他(她),你会怎么做?你憧憬你们的未来吗?你觉得你们之间的缘分是天赐良缘还是...
    夏目心叶阅读 2,744评论 5 10

友情链接更多精彩内容