美文网首页iOS功能开发很常
iOSAPP端接入微信支付流程

iOSAPP端接入微信支付流程

作者: 优优切克闹 | 来源:发表于2021-03-03 18:58 被阅读0次

    1.项目设置APPID

    商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID。如图所示。

    设置APPID

    2.导入微信支付SDK

    导入sdk

    将官方demo中的这个文件夹拷贝到项目里

    在APPdelegate里设置APPID

    导入依赖库

    项目中点击支付的按钮写上如下方法

    别忘了导入头文件和遵循代理和注册代理  

    info.plist里添加如下字段LSApplicationQueriesSchemes,为Array类型,然后在里面添加两个小选项,分别为weixin和wechat

    注意!!!下面这三处  一定要对应上  少一不可

    如果不回调,APPdelegate里写上这个

    //被废弃的方法如下

    - (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]];

    }

    //替换的新方法

    - (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary*)options {

        return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];

    }

    //调起微信支付

        PayReq* req  = [[PayReq alloc] init];

        req.partnerId = @"1220277201";

        req.prepayId  = @"9201039000160315ab9324b87b451223";

        req.nonceStr  = @"83DB7tk21akNRSFs";

        req.timeStamp = 1458027344;

        req.package  = @"Sign=WXPay";

        req.sign      = @"db6919dbd8ccb3f8a25108bebcd87f7a02c52e39";

        [WXApi sendReq:req];

    // 获取当前时间

        time_t now;

        time(&now);

        // 时间戳

        //NSString *timestamp = [NSString stringWithFormat:@"%ld", now];

        // 随机字符串

        //NSString *nonceStr = [[self md5:timestamp] uppercaseString];

        //订单id

        NSString *prepayid =  _prepayid;

        PayReq *request = [[PayReq alloc] init];

        /** 商家向财付通申请的商家id */

        request.partnerId = WXPartnerid;

        /** 预支付订单 */

        request.prepayId= prepayid;

        /** 商家根据财付通文档填写的数据和签名 */

        request.package = @"Sign=WXPay";

        /** 随机串,防重发 */

        request.nonceStr= _noncestr;

        /** 时间戳,防重发 */

        request.timeStamp = [_timestamp intValue];

        /** 商家根据微信开放平台文档对数据做的签名 */

        request.sign= _sign;

        /*! @brief 发送请求到微信,等待微信返回onResp

         *

         * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型

         * SendAuthReq、SendMessageToWXReq、PayReq等。

         * @param req 具体的发送请求,在调用函数后,请自己释放。

         * @return 成功返回YES,失败返回NO。

         */

        [WXApi sendReq: request];

    相关文章

      网友评论

        本文标题:iOSAPP端接入微信支付流程

        本文链接:https://www.haomeiwen.com/subject/ptngdftx.html