美文网首页
微信支付签名

微信支付签名

作者: 刘宇航iOS | 来源:发表于2016-07-20 18:22 被阅读111次
#pragma mark -  微信支付本地签名
//创建发起支付时的sign签名
-(NSString *)createMD5SingForPayWithAppID:(NSString *)appid_key partnerid:(NSString *)partnerid_key prepayid:(NSString *)prepayid_key package:(NSString *)package_key noncestr:(NSString *)noncestr_key timestamp:(UInt32)timestamp_key{
    NSMutableDictionary *signParams = [NSMutableDictionary dictionary];
    [signParams setObject:appid_key forKey:@"appid"];//微信appid 例如wxfb132134e5342
    [signParams setObject:noncestr_key forKey:@"noncestr"];//随机字符串
    [signParams setObject:package_key forKey:@"package"];//扩展字段  参数为 Sign=WXPay
    [signParams setObject:partnerid_key forKey:@"partnerid"];//商户账号
    [signParams setObject:prepayid_key forKey:@"prepayid"];//此处为统一下单接口返回的预支付订单号
    [signParams setObject:[NSString stringWithFormat:@"%u",(unsigned int)timestamp_key] forKey:@"timestamp"];//时间戳
    
    NSMutableString *contentString  =[NSMutableString string];
    NSArray *keys = [signParams allKeys];
    //按字母顺序排序
    NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        return [obj1 compare:obj2 options:NSNumericSearch];
    }];
    //拼接字符串
    for (NSString *categoryId in sortedArray) {
        if (   ![[signParams objectForKey:categoryId] isEqualToString:@""]
            && ![[signParams objectForKey:categoryId] isEqualToString:@"sign"]
            && ![[signParams objectForKey:categoryId] isEqualToString:@"key"]
            )
        {
            [contentString appendFormat:@"%@=%@&", categoryId, [signParams objectForKey:categoryId]];
        }
    }
    //添加商户密钥key字段  商户平台自己去创建
    [contentString appendFormat:@"key=%@", @"BAF174AC2D041C2BAFE72302368E0A58"];
    NSString *result = [contentString MD5_32BIT];//md5加密
    return result;
}

相关文章

  • iOS-微信支付SDK

    微信支付流程:客户端发起支付请求--->后台和微信SDK交互之后返回带签名的客户端支付信息(之前带签名的支付信息是...

  • OAuth2.0实战1(分析简书的微信登陆及实现)

    微信开发三大坑:1、微信OAuth2.0授权2、微信jssdk签名3、微信支付签名 本篇先搞定微信OAuth2.0...

  • 使用公钥完成签名验证

    在对接微信支付接口时,需要对微信支付返回的信息进行签名验证,防止中间人攻击,替换微信支付返回的结果 整体过程 微信...

  • Android爬坑之微信支付

    微信支付需要在微信开放平台配置通过正式签名文件打包的apk获取到的应用签名 微信提供的获取应用签名apk:http...

  • 微信支付签名

  • 小程序·云调用(微信支付)

    本文来自哔哩哔哩视频学习所得: 微信支付·交互流程图 微信支付接入·前准备工作 : 老版本微信签名支付 小程序·云...

  • iOS微信App支付

    微信支付的难点在于微信商户平台配置数据签名 原生客户端调用微信支付非常简单,代码如下: 回调方法: 微信授权登录 ...

  • 安卓获取应用签名工具

    背景 在对接支付宝支付和微信支付时,需要获取应用签名 解决方案 下载签名工具并安装到手机上:https://ope...

  • WeChat网页开发工具集合

    验证签名工具 签名工具.png 微信公众平台接口调试工具 接口调试工具.png 发放普通红包 公众号支付介绍 微信...

  • 支付宝和微信支付报错

    支付宝 : 微信: 微信支付验证签名失败可能的原因有两个:一、传给微信sdk的参数中时间戳的格式错误。iOS中时间...

网友评论

      本文标题:微信支付签名

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