项目里用到了充值服务,就临时仿照支付宝写了个密码输入视图,xib拖控件+简单封装,需要可以拿去改改。
导入框架
将github工程中的PaymentView目录拖到你的项目中,并导入头文件
#import "WSPaymentView.h"
初始化
传递参数并指定代理对象,这里目前就只支持2种付款方式,可以自己在此基础上修改。
self.paymentView = [[WSPaymentView alloc] initWithInfo:@"订单号: TB54567644556 防压充气娃娃" money:@"1888.00 元" paymentMethod:0]; self.paymentView.delegate = self; [self.paymentView show];
监听事件
所有事件都通过WSPaymentViewDelegate协议进行回调,实现协议中的方法即可监听。
#pragma mark - WSPaymentViewDelegate - (void)didTappedConfirmButtonWithPaymentMethod:(WSPaymentMethod)method paymentPassword:(NSString *)paymentPassword { if (method == WSPaymentMethodOnline) { NSLog(@"在线支付"); } else { NSLog(@"余额支付 密码: %@", paymentPassword); // 模拟 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self.paymentView paymentResult:YES message:@"付款成功"]; }); // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // [self.paymentView paymentResult:NO message:@"当前支付密码不正确"]; // }); // dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // [self.paymentView paymentResult:NO message:@"系统异常"]; // }); } } - (void)didTappedColseButton { NSLog(@"支付视图关闭"); } - (void)didTappedForgetPasswordButton { NSLog(@"忘记密码"); } - (void)paymentComplete { NSLog(@"付款完成"); }
传递付款结果
上面例子里是模拟的付款结果,真实项目需要在后台返回结果后调用这个接口即可。
[self.paymentView paymentResult:YES message:@"付款成功"];
这个demo只是给有需求的朋友一个思路,具体实现可以有很多方式,如果您有更好的方式请不要喷我啊