iOS支付宝1分钟集成,使用方法封装。超级好用
来源:互联网 发布:程序化交易编程语言 编辑:程序博客网 时间:2024/06/04 14:05
首先你得下载支付宝sdk和demo.
将下图中的文件从demo中拖到你得工程里
不用担心其中NSString+Alipay 这个类你没有,稍后我会贴上代码
你得这个路径得更改,不然容易找不到文件。如图
pch头文件
这个地方需要设置一下,当你支付完成后返回应用,我直接用的友盟返回时用的fromScheme ,你也可以自己设置一个,比如你的工程名。
接下来就是你代码部分了。在AppDelegate 中导入类
需要写的代码
NSString+Alipay//// NSString+Alipay.h// yunkang//// Created by lixi on 16/6/15.// Copyright (c) 16年 lixi. All rights reserved.//#import <Foundation/Foundation.h>#import "Order.h"#import "DataSigner.h"#import <AlipaySDK/AlipaySDK.h>@interface NSString (Alipay)+ (NSString *)stringWithName:(NSString *)name Price:(float)price OrderId:(NSString *)orderId NotifyURL:(NSString *)notifyURL;@end
//// NSString+Alipay.m// yunkang//// Created by lixi on 16/6/15.// Copyright (c) 2016年 lixi. All rights reserved.//#import "NSString+Alipay.h"@implementation NSString (Alipay)+ (NSString *)stringWithName:(NSString *)name Price:(float)price OrderId:(NSString *)orderId NotifyURL:(NSString *)notifyURL{ NSString *partner = @"xxxxxxxxxxx"; NSString *seller = @"xxxxxxxxxxx@qq.com"; NSString *privateKey = @"MIICdQIBADANBgxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxZperX"; /* *生成订单信息及签名 */ //将商品信息赋予AlixPayOrder的成员变量 Order *order = [[Order alloc] init]; order.partner = partner; order.sellerID = seller; order.outTradeNO = orderId; //订单ID(由商家自行制定) order.subject = name; //商品标题 order.body = @"购买"; //商品描述 order.totalFee = [NSString stringWithFormat:@"%.2f",price]; //商品价格 order.notifyURL = notifyURL; //回调URL order.service = @"mobile.securitypay.pay"; order.paymentType = name;//交易名称,比较重要 order.inputCharset = @"utf-8"; order.itBPay = @"30m"; order.showURL = @"m.alipay.com"; //将商品信息拼接成字符串 NSString *orderSpec = [order description]; NSLog(@"orderSpec = %@",orderSpec); //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode id<DataSigner> signer = CreateRSADataSigner(privateKey); NSString *signedString = [signer signString:orderSpec]; //将签名成功字符串格式化为订单字符串,请严格按照该格式 NSString *orderString = nil; if (signedString != nil) { orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"", orderSpec, signedString, @"RSA"]; return orderString; }else{ return nil; }}- (NSString *)generateTradeNO{ static int kNumber = 15; NSString *sourceStr = @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; NSMutableString *resultStr = [[NSMutableString alloc] init]; srand(time(0)); for (int i = 0; i < kNumber; i++) { unsigned index = rand() % [sourceStr length]; NSString *oneStr = [sourceStr substringWithRange:NSMakeRange(index, 1)]; [resultStr appendString:oneStr]; } return resultStr;}@end
下面就是在你发起支付的地方调方法了
NSString *orderStr = [NSString stringWithName:[NSString stringWithFormat:@"订单支付%@", name] Price:price OrderId:orderId NotifyURL:url]; [[AlipaySDK defaultService] payOrder:orderStr fromScheme:@"wxa616fdbf0f8709c0" callback:^(NSDictionary *resultDic) { NSLog(@"reslut = %@",resultDic); if ([resultDic[@"resultStatus"] integerValue] == 9000) { HUD(@"支付成功!"); [self.navigationController popToRootViewControllerAnimated:YES]; }else{ HUD(@"支付失败!"); } }];
如果我有什么地方写的不够清楚或者有问题的地方,欢迎大家来纠正!3Q~
2 0
- iOS支付宝1分钟集成,使用方法封装。超级好用
- iOS开发:2分钟快速集成支付宝快捷支付
- 2分钟集成支付宝
- iOS 集成支付宝支付
- iOS集成支付宝支付
- iOS 集成支付宝支付
- iOS集成支付宝支付
- 集成iOS支付宝支付
- iOS支付宝支付集成
- iOS集成支付宝
- iOS集成支付宝
- iOS集成支付宝
- iOS集成支付宝
- iOS集成支付宝
- iOS支付宝集成
- iOS集成支付宝
- iOS集成支付宝
- IOS集成支付宝
- 开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)
- android 拍照和选择相册图片剪切
- 深度卷积网络CNN与图像语义分割
- 使用strace, ltrace寻找故障原因的线索
- nginx + lua + redis
- iOS支付宝1分钟集成,使用方法封装。超级好用
- 代码中获取md签名值,防二次打包
- Light 1045 Digits of Factorial 【数论】
- 常用系统操作响应时间表
- c# 根据图像获取图像的扩展名
- CSS属性之字体(Font)
- android studio 的oncreate 的 PersistableBundle persistentState
- volatile 的用法
- shiro授权入门程序