iOS支付宝、微信、银联支付集成封装调用(下)支付宝、微信、银联支付集成封装调用(下)
一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下:
这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部代码,显然并不是很合适,更何况,可能一个app并不止两个入口。所以封装还是很
有必要的。
1.新建Model:——-后台返回支付方式的列表json
#import <Foundation/Foundation.h>
@interface IOAPayItemModel : NSObject
//name:代表是支付宝,微信,银联或者余额等
@property (nonatomic, copy) NSString *name;
//icon:代表是支付方式的图片
@property (nonatomic, copy) NSString *icon;
//code:代表支付方式的唯一标识
@property (nonatomic, copy) NSString *code;
//payType:代表支付类型(自己确定的)
@property (nonatomic, assign) NSInteger payType;
@end
#import "IOAPayItemModel.h"
@implementation IOAPayItemModel
@end
2.封装第三方支付接口以及回调接口—–直接上源代码—-会有解释(相信大家的能力,肯定能看懂)
#import <Foundation/Foundation.h>
//支付宝SDK
#import <AlipaySDK/AlipaySDK.h>
//微信接口
#import <WXApi.h>
//银联接口
#import "UPPaymentControl.h"
/**
枚举:列出第三方支付方式
*/
typedef NS_ENUM(NSInteger, PayType) {
kPayTypeWXPay, // 微信支付
kPayTypeALiPay, // 支付宝支付
kPayTypeUNPay // 银联支付
};
/**
IOAPayRequestModel:第三方支付需要的参数
*/
@interface IOAPayRequestModel: NSObject
@property (nonatomic, assign) PayType payType;
/**
支付宝和银联-后台返回是字符串类型----支付宝和银联使用此方式
*/
@property (nonatomic, copy) NSString *payString;
@property (nonatomic, copy) NSString *appScheme; // 根据设置的paytype设置
/**
微信-后台返回是字典类型--- 微信使用此方式
*/
@property (nonatomic, strong) NSDictionary *userInfo;
@end