• 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

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

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

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

    公众号二维码

  • 相关阅读:
    缺少d3dx9_43.dll怎么解决 win系统如何运行dll文件?
    Vue3使用Svgaplayer进行.svga动画的播放
    SQL中的函数:单值函数、聚合函数
    这个项目获2022世界物联网博览会三新成果奖!
    BigDecimal常用API
    机器学习+CFD的后续
    Hadoop和关系型数据库间的数据传输工具——Sqoop
    LeetCode 53. 最大子数组和
    〖Python 数据库开发实战 - MySQL篇㉖〗- 数据删除操作 - DELETE语句
    HTML语言(概述及常用标签)
  • 原文地址:https://blog.csdn.net/whuizhou/article/details/125417998