仿支付宝支付密码Demo

/ 0

项目里用到了充值服务,就临时仿照支付宝写了个密码输入视图,xib拖控件+简单封装,需要可以拿去改改。

3

 

导入框架

将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只是给有需求的朋友一个思路,具体实现可以有很多方式,如果您有更好的方式请不要喷我啊

demo地址:https://github.com/6ag/PaymentView