iOS微信支付功能简要

1.从微信官方下载SDK:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1

2.导入SDK

3.导入系统库

 

  • SystemConfiguration.framework
  • libz.tbd 
  • libsqlite3.0.tbd
  • CoreTelephony.framework
  • libc++.tbd4.自定义一个类

     

    .h文件

     

    #import <Foundation/Foundation.h>
    #import "WXApi.h"
    
    @protocol WXApiManagerDelegate <NSObject>
    
    @optional
    
    - (void)managerDidRecvGetMessageReq:(GetMessageFromWXReq *)request;
    
    - (void)managerDidRecvShowMessageReq:(ShowMessageFromWXReq *)request;
    
    - (void)managerDidRecvLaunchFromWXReq:(LaunchFromWXReq *)request;
    
    - (void)managerDidRecvMessageResponse:(SendMessageToWXResp *)response;
    
    - (void)managerDidRecvAuthResponse:(SendAuthResp *)response;
    
    - (void)managerDidRecvAddCardResponse:(AddCardToWXCardPackageResp *)response;
    
    @end
    
    @interface WXApiManager : NSObject<WXApiDelegate>
    
    @property (nonatomic, assign) id<WXApiManagerDelegate> delegate;
    
    + (instancetype)sharedManager;
    
    @end
    

    .m文件

     

     

    #import "WXApiManager.h"
    
    @implementation WXApiManager
    
    #pragma mark - LifeCycle
    +(instancetype)sharedManager {
        static dispatch_once_t onceToken;
        static WXApiManager *instance;
        dispatch_once(&onceToken, ^{
            instance = [[WXApiManager alloc] init];
        });
        return instance;
    }
    
    - (void)dealloc {
        self.delegate = nil;
    }
    
    #pragma mark - WXApiDelegate
    - (void)onResp:(BaseResp *)resp {
        if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvMessageResponse:)]) {
                SendMessageToWXResp *messageResp = (SendMessageToWXResp *)resp;
                [_delegate managerDidRecvMessageResponse:messageResp];
            }
        } else if ([resp isKindOfClass:[SendAuthResp class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvAuthResponse:)]) {
                SendAuthResp *authResp = (SendAuthResp *)resp;
                [_delegate managerDidRecvAuthResponse:authResp];
            }
        } else if ([resp isKindOfClass:[AddCardToWXCardPackageResp class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvAddCardResponse:)]) {
                AddCardToWXCardPackageResp *addCardResp = (AddCardToWXCardPackageResp *)resp;
                [_delegate managerDidRecvAddCardResponse:addCardResp];
            }
        }else if([resp isKindOfClass:[PayResp class]]){
            //支付返回结果,实际支付结果需要去微信服务器端查询
            NSString *strMsg,*strTitle = [NSString stringWithFormat:@"支付结果"];
            
            switch (resp.errCode) {
                case WXSuccess:
                    strMsg = @"支付结果:成功!";
                    NSLog(@"支付成功-PaySuccess,retcode = %d", resp.errCode);
                    break;
                    
                default:
                    strMsg = [NSString stringWithFormat:@"支付结果:失败!retcode = %d, retstr = %@", resp.errCode,resp.errStr];
                    NSLog(@"错误,retcode = %d, retstr = %@", resp.errCode,resp.errStr);
                    break;
            }
            
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
        }
    
    }
    
    - (void)onReq:(BaseReq *)req {
        if ([req isKindOfClass:[GetMessageFromWXReq class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvGetMessageReq:)]) {
                GetMessageFromWXReq *getMessageReq = (GetMessageFromWXReq *)req;
                [_delegate managerDidRecvGetMessageReq:getMessageReq];
            }
        } else if ([req isKindOfClass:[ShowMessageFromWXReq class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvShowMessageReq:)]) {
                ShowMessageFromWXReq *showMessageReq = (ShowMessageFromWXReq *)req;
                [_delegate managerDidRecvShowMessageReq:showMessageReq];
            }
        } else if ([req isKindOfClass:[LaunchFromWXReq class]]) {
            if (_delegate
                && [_delegate respondsToSelector:@selector(managerDidRecvLaunchFromWXReq:)]) {
                LaunchFromWXReq *launchReq = (LaunchFromWXReq *)req;
                [_delegate managerDidRecvLaunchFromWXReq:launchReq];
            }
        }
    }
    
    @end
    
     

     

     
  • SystemConfiguration.framework
  • libz.tbd 
  • libsqlite3.0.tbd
  • CoreTelephony.framework
  • libc++.tbd
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS微信支付宝封装是指在iOS平台上对微信支付和支付宝支付功能进行封装和集成,方便开发者在自己的应用中集成使用这两种支付方式。 首先,对于微信支付的封装,开发者可以使用微信官方提供的iOS SDK进行集成。该SDK包含了微信支付的各种功能和接口,如创建支付订单、发起支付请求、支付结果回调等。开发者只需按照微信提供的文档进行相应的调用和配置,即可实现在自己的应用中使用微信支付功能。 其次,对于支付宝支付的封装,同样可以使用支付宝官方提供的iOS SDK进行集成。该SDK包含了支付宝支付的相关功能和接口,如创建支付订单、发起支付请求、支付结果回调等。开发者只需按照支付宝提供的文档进行相应的调用和配置,即可实现在自己的应用中使用支付宝支付功能。 通过对iOS微信支付宝的封装,开发者可以在自己的应用中方便地集成和使用微信支付和支付宝支付功能,提供给用户更多的支付方式选择,方便用户进行支付操作。同时,封装的过程也可以提高开发效率和代码的复用性,减少开发者的开发工作量。 需要注意的是,为了保证支付过程的安全性和可靠性,开发者在集成和使用支付功能时应按照相关的规范和指引进行操作,确保支付过程的顺利完成和支付信息的安全保密。同时,开发者还需要了解和掌握各种支付方式的使用规则和注意事项,方便根据实际需求进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值