• 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

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

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

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

    公众号二维码

  • 相关阅读:
    Presto资源管理之Resource Groups And Selector
    天地图WMTS地图瓦片下载
    智能算法 | MATLAB实现PSO粒子群算法函数寻优
    最新Java JDK 21:全面解析与新特性探讨
    负数如何取模?深度理解取模:取余运算
    华为云物联网平台对接之MQTT设备接入
    error: #20: identifier “PWMC_Handle_t“ is undefined
    LeetCode 1721. 交换链表中的节点
    UE4基础篇十二: 网络同步
    使用GPT-4生成训练数据微调GPT-3.5 RAG管道
  • 原文地址:https://blog.csdn.net/whuizhou/article/details/125417998