wechat pay

#pragma mark - 使用微信支付订阅(提问)
- (void)makePayWeChatPayRequest:(NSDictionary *)productInfo baseHttpBoolBlock:(BaseHttpBoolBlock)baseHttpBoolBlock{
    
    NSString *money = productInfo[@"money"];
    
    //创建支付签名对象
    payRequsestHandler *req = [[payRequsestHandler alloc]init];
    //初始化支付签名对象
    [req init:APP_ID mch_id:MCH_ID];
    //设置密钥
    [req setKey:PARTNER_ID];
    
    //获取到实际调起微信支付的参数后,在app端调起支付
    NSMutableDictionary *dict = [req sendPay_demoWithMoney:money isCharge:NO];
    // 传回的订单号
    NSString *orderStr        = [req getOrderStr];
    
    ZJLog(@"tradeOrderStr==============%@",orderStr);
    
    NSMutableDictionary *orderDict = [[NSMutableDictionary alloc] initWithDictionary:productInfo];
    NSDictionary *tempDic = [NSDictionary dictionaryWithObjectsAndKeys:orderStr,@"tradeNO", nil];
    [orderDict addEntriesFromDictionary:tempDic];
    ZJLog(@"支付宝订阅支付参数 = %@",orderDict);
    NSDictionary *parmasDic = (NSDictionary *)orderDict;
    
    
    if(dict == nil){
        //错误提示
        [SVProgressHUDManager showErrorWithStatus:@"系统繁忙,稍后再试"];
        if(baseHttpBoolBlock) baseHttpBoolBlock(NO,nil,1,@"系统繁忙,稍后再试");
        
    }else{
        ZJLog(@"==%@\n\n",[req getDebugifo]);
        //        NSString *wxOpenId = [dict objectForKey:@"appid"];
        NSMutableString *stamp  = [dict objectForKey:@"timestamp"];
        
        //调起微信支付
        PayReq* req             = [[PayReq alloc] init];
        req.openID              = [dict objectForKey:@"appid"];
        req.partnerId           = [dict objectForKey:@"partnerid"];
        req.prepayId            = [dict objectForKey:@"prepayid"];
        req.nonceStr            = [dict objectForKey:@"noncestr"];
        req.timeStamp           = stamp.intValue;
        req.package             = [dict objectForKey:@"package"];
        req.sign                = [dict objectForKey:@"sign"];
        
        
        [self beforePayRemarkWithType:PayType_WeChat orderDict:parmasDic baseHttpBoolBlock:^(BOOL isSuccess, NSMutableArray *resultArr, NSInteger flagVaule, NSString *infoMessage) {
            
            if (isSuccess)
            {

                NSMutableDictionary *paysDic = orderDict;
                [paysDic setObject:[resultArr firstObject] forKey:@"PayID"];
                [paysDic setObject:[resultArr lastObject] forKey:@"questionid"];

                NSMutableArray *resArr = [NSMutableArray arrayWithObjects:paysDic, nil];
                
                if(baseHttpBoolBlock) baseHttpBoolBlock(YES,resArr,10000,@"");
                
                [WXApi sendReq:req];

                
            }else
            {
                if(baseHttpBoolBlock) baseHttpBoolBlock(NO,nil,flagVaule,infoMessage);
            }
        }];
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容