2019-12-26 ios 微信支付签名验证失败

语言oc

微信支付签名失败,第一先确认商户号,商户秘钥,应用id是否有误.

主要出问题的位置是第二步:sign签名(微信签名说明)

ios版本sdk内传入参数是5个(不包含sign),但是在做sign的签名的时候要以api说明为准需要7个键值对(调起支付api),需要手动补全appid和key(商户秘钥)这两个字段的秘钥.拼接顺序也需要按照ASCII码顺序处理:

NSString *md5 =[NSString stringWithFormat:@"appid=应用id&noncestr=%@&package=%@&partnerid=商户id&prepayid=%@×tamp=%u&key=商户秘钥",resp.nonceStr,resp.package,resp.prepayId,(unsigned int)resp.timeStamp];

然后将字符串进行MD5加密处理并进行大写转换就OK了.

MD5处理:

+ (NSString *)backAppointforMD5:(NSString *)str

 {     

        const char * charstr = [str UTF8String];

        unsigned char result[CC_MD5_DIGEST_LENGTH];

        CC_MD5(charstr, (CC_LONG)strlen(charstr), result);     

        NSMutableString *savestr = [NSMutableString string];    

         for (int i = 0; i

         {        

                 [savestr appendFormat:@"%02x",result[i]];

         }     

        return savestr; 

}

你可能感兴趣的:(2019-12-26 ios 微信支付签名验证失败)