本SDK是根据BeeCloud Rest API 开发的 iOS SDK, 适用于 iOS6 及以上版本。可以作为调用BeeCloud Rest API的示例或者直接用于生产。
1.下载本工程源码,将BCPaySDK文件夹中的代码拷贝进自己项目,并按照下文的3个步骤导入相应文件进自己工程即可。
- 下载的
External文件夹下的AlipaySDK.framework,libUPPayPlugin.a,libWeChatSDK.a文件夹分别对应支付宝,银联,微信的原生SDK,请按需导入进自己的项目。- iOS SDK使用了第三方Http请求库AFNetworking,请一起引入项目(如您之前已经使用AFNetworking,则无需重复导入,但是建议使用最新的AFNetworking版本,新版本修复了一个关于HTTPS链接的安全漏洞)。
- 最后加入系统库
libz.dylib,libsqlite3.dylib,libc++.dylib
2.使用CocoaPods:
在podfile中加入
pod 'BeeCloud'
三个步骤,2分钟轻松搞定:
//请替换成自己的BeeCloud账户中的AppID和AppSecret
[BCPay initWithAppID:@"c5d1cba1-5e3f-4ba0-941d-9b0a371fe719" andAppSecret:@"39a7a518-9ac8-4a9e-87bc-7885f33cf18c"];
//如果需要微信支付,请添加下面这行(自行替换微信APP ID)
[BCPay initWeChatPay:@"wxf1aa465362b4c8f1"];
具体使用请参考项目中的
PayDemo工程
要调用以下方法,都需要实现接口BCApiDelegate, 实现本接口的方法使不同类型的请求获得对应的响应。
原型:
通过构造BCPayReq的实例,使用[BCPay sendBCReq:payReq]方法发起支付请求。
调用:
- (void)doPay:(PayChannel)channel {
NSString *outTradeNo = [self genOutTradeNo];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key", nil];
BCPayReq *payReq = [[BCPayReq alloc] init];
payReq.channel = channel;
payReq.title = @"BeeCloud自制白开水";
payReq.totalfee = @"1";
payReq.billno = outTradeNo;
payReq.scheme = @"payDemo";
payReq.viewController = self;
payReq.optional = dict;
[BCPay sendBCReq:payReq];
}- 查询支付订单
原型:
通过构造BCQueryReq的实例,使用[BCPay sendBCReq:req]方法发起支付查询
调用:
BCQueryReq *req = [[BCQueryReq alloc] init];
req.channel = channel;
//req.billno = @"20150722164700237";
//req.starttime = @"2015-07-21 00:00";
//req.endtime = @"2015-07-23 12:00";
req.skip = 0;
req.limit = 20;
[BCPay sendBCReq:req];- 查询退款订单
原型:
通过构造BCQueryRefundReq的实例,使用[BCPay sendBCReq:req]方法发起退款查询
调用:
BCQueryRefundReq *req = [[BCQueryRefundReq alloc] init];
req.channel = channel;
//req.billno = @"20150722164700237";
//req.starttime = @"2015-07-21 00:00";
//req.endtime = @"2015-07-23 12:00";
//req.refundno = @"20150709173629127";
req.skip = 0;
req.limit = 20;
[BCPay sendBCReq:req];- 查询退款状态(只支持微信)
原型:
通过构造BCRefundStatusReq的实例,使用[BCPay sendBCReq:req]方法发起退款查询
调用:
BCRefundStatusReq *req = [[BCRefundStatusReq alloc] init];
req.refundno = @"20150709173629127";
[BCPay sendBCReq:req];项目中的PayDemo工程为我们的demo
将target设置为PayDemo之后可以直接运行(支付需要真机)
TODO
- 关于weekhook的接收
文档请阅读 webhook
我们非常欢迎大家来贡献代码,我们会向贡献者致以最诚挚的敬意。
一般可以通过在Github上提交Pull Request来贡献代码。
Pull Request要求
-
代码规范
-
代码格式化
-
必须添加测试! - 如果没有测试(单元测试、集成测试都可以),那么提交的补丁是不会通过的。
-
记得更新文档 - 保证
README.md以及其他相关文档及时更新,和代码的变更保持一致性。 -
创建feature分支 - 最好不要从你的master分支提交 pull request。
-
一个feature提交一个pull请求 - 如果你的代码变更了多个操作,那就提交多个pull请求吧。
-
清晰的commit历史 - 保证你的pull请求的每次commit操作都是有意义的。如果你开发中需要执行多次的即时commit操作,那么请把它们放到一起再提交pull请求。
The MIT License (MIT).
