• iOS制作微信(weChat)支付SDK过程



    Git下载地址
    微信支付可支付的demo

    NOTICE该SDK包含了 微信分享 微信登录等

    已经做成组件在cocoapods里
    可以搜索

    -> WeChatPaySDK (0.0.2)
       A short description of WeChatPaySDK.
       pod 'WeChatPaySDK', '~> 0.0.2'
       - Homepage: https://github.com/7General
       - Source:   https://github.com/7General/WeChatPaySDK.git
       - Versions: 0.0.2, 0.0.1 [master repo]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    1:下载微信支付demo,把以前几个文件摘出来

    WechatAuthSDK.h(auth相关)
    WXApi.h(业务相关)
    WXApiObject.h(各种对象)
    libWeChatSDK.a (这个不能少)
    
    • 1
    • 2
    • 3
    • 4

    2:设置info.plist

    • 允许http访问
      App Transport Security Settings
      Allow Arbitrary Loads :YES
    • 设置URL Types
      设置微信支付URL Types

    3:接入微信支付appdelegate

    //注册微信支付
    [WXApi registerApp:MXWechatAPPID withDescription:@"微信支付"];
    
    • 1
    • 2

    4:支付回调

    #pragma mark - 微信支付回调
    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    {
        return  [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    }
    
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
        return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    }
    
    // NOTE: 9.0以后使用新API接口
    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
    {
        return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    5:唤起微信支付

    + (void)WakeupWeChatPay:(MSSendPayRequest *)payRequest {
        PayReq *request = [[PayReq alloc] init];
        request.openID = payRequest.openID;
        request.partnerId = payRequest.partnerId;
        request.prepayId= payRequest.prepayId;
        request.package = payRequest.package;
        request.nonceStr= payRequest.nonceStr;
        request.timeStamp = payRequest.timeStamp;
        request.sign= payRequest.sign;
        // 调用微信
        [WXApi sendReq:request];
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    有些地方说的不到位,还请各位看官指正。。。

    • 欢迎各位一块学习,提高逼格!
    • 也可以添加洲洲哥的微信公众号

    可以来微信公众号(洲洲哥)后台给我们留言。 快来扫码关注我们吧!

    公众号二维码

  • 相关阅读:
    spring之AOP(面向切面编程)之详结
    C++大数加法——最简单实现
    ubuntu20.04 搭建Jenkins
    水表抄表系统:现代水资源管理的革新
    两个连续变量乘积线性化——McCormick envelope近似
    【python入门专项练习】-N06.循环语句
    重新初始化k8s集群
    手写自定义springboot-starter,感受框架的魅力和原理
    Java Timer实战
    【Tomcat】Apache发布两个新版本Tomcat修复多个Bug
  • 原文地址:https://blog.csdn.net/whuizhou/article/details/125417998