MD5加密支付宝支付与微信支付

在做支付宝支付与微信支付时看到两家公司给的dom其中关于MD5加密的

支付宝的dom:

DigestUtils.md5Hex(test).toUpperCase();

微信的dom:

private static String MD5(String sourceStr) throws UnsupportedEncodingException {

String result = “”;

try {

MessageDigest md = MessageDigest.getInstance(“MD5”);

md.update(sourceStr.getBytes());

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer(“”);

for (int offset = 0; offset < b.length; offset++) {

i = b[offset];

if (i < 0)

i += 256;

if (i < 16)

buf.append(“0”);

buf.append(Integer.toHexString(i));

}

result = buf.toString();

} catch (NoSuchAlgorithmException e) {

// log.info(e);

}

return result;

}

测试了下,

第一张图(http://img.blog.csdn.net/20150828222552981)

这里得到的结果是相同的,但是在支付时在微信使用DigestUtils.md5Hex(test).toUpperCase();函数得到的是错误的签名。不知道怎么回事

其中微信的dom是不能使用中文的,但是测试多次得到的结果都是三者相同,郁闷

要使用中文只需要将md.update(sourceStr.getBytes());改为md.update(sourceStr.getBytes(“UTF-8”));

即可。

贴出代码:

private static String MD5TOE(String sourceStr) throws UnsupportedEncodingException {

String result = “”;

try {

MessageDigest md = MessageDigest.getInstance(“MD5”);

md.update(sourceStr.getBytes(“UTF-8”));

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer(“”);

for (int offset = 0; offset < b.length; offset++) {

i = b[offset];

if (i < 0)

i += 256;

if (i < 16)

buf.append(“0”);

buf.append(Integer.toHexString(i));

}

result = buf.toString();

//log.info(“MD5(” + sourceStr + “,16) = ” + buf.toString().substring(8, 24));

} catch (NoSuchAlgorithmException e) {

// log.info(e);

}

return result;

}

其中这个log.info是得到16位的MD5.

有知道在支付时在微信使用DigestUtils.md5Hex(test).toUpperCase();函数得到的是错误的签名。可以说下原因。谢谢

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 03:56:09

MD5加密支付宝支付与微信支付的相关文章

微信公众号中的支付宝支付与微信支付

一般,在微信公众号中的商城都是需要支持微信支付和支付宝支付的,当然,较大的公司对于鹅厂和阿里的站队就不说了,所以这里简单记录一下支付宝支付和微信支付的主要流程.说是简单介绍,这是因为确实不难,因为前端在这方面,包括微信授权登陆这一块需要做的都不是很多,而主要的工作量都在后端部分. 支付宝支付 无论是支付宝支付还是微信支付,最开始的步骤当然是将商品列表.商家相关信息.用户remark.运费.总价等等支付需要的信息通过post请求向后端传递,这里介绍支付宝支付,所以假设用户选择的是支付宝支付,那么后

【zhifu】web开发中的支付宝支付和微信支付

一.支付类型: 支付宝支付: 支付宝app内的网页支付: app外(即普通浏览器)网页支付: 微信支付: 微信app内的支付(在这里叫公众号支付) app外的支付(微信H5支付): 微信公众号的支付宝支付: 二.微信内支付 微信浏览器内调起微信支付也就是微信公众号支付有2种实现方式 1.使用微信的内置js对象 WeixinJSBridge(本人使用的此方法)交易类型:jsapi function onBridgeReady(){ WeixinJSBridge.invoke( 'getBrandW

如何申请三方支付接口 微信支付 支付宝支付 网银支付 钱包支付 扫码支付等

如何申请三方支付接口 微信支付 支付宝支付 网银支付 钱包支付  扫码支付等 首先,需要提供一整套申请支付接口的资料,如下 一.企业3证加盖公司公章 二.法人手持身份证照片 三.对应企业ICP备案的交易网站域名 资料审核初步审核之后,请把支付合作协议打印出来一式二份附带企业三证打印盖章邮寄到三方支付公司进一步审核 审核通过后,进行支付接口的对接 联调 最终正式环境上线

支付宝支付与微信支付服务端回调notify_url数据的区别

这两天优化了一下支付宝支付和微信支付订单回调的问题,之前我们的订单都是用手动回调给服务器,现在改成支付宝和微信原生的异步回调,结果并没有像我们想象的那么简单,支付宝是很顺利的解决回调,用一般的方式接收即可,但是微信接收时用普通的接收方式是不行的必须用另一种方式,如下且看: 支付宝和微信的回调地址 notifyUrl = RequestUrl.BASE_URL+"order/order_payment"+"?order_code="+orderCode; 服务器端是P

iOS第三方支付集成——微信支付

近期笔者开发的项目中,需要用到支付宝支付和微信支付.大概一个月前,支付宝就已经集成完毕并可以正常使用.但在集成坑爹的微信支付SDK时,遇到了诸多问题,搞了将近三个星期.期间不断的跟后台同事核对代码(签名.下单),支付流程,其中的血泪艰辛,不言而喻.现笔者把集成过程中遇到的一些问题记录下来,供自己和大家参考.如果有什么不对的地方,也请大家多多指正: 吐槽完了,下面出正文. 补充说明:第一准备阶段不需要开发者负责操作,如果你是iOS开发人员,只想找到调用微信支付的代码,可直接跳过 第一准备阶段. 一

微信支付----PC扫码支付(查询微信支付订单判断是否支付成功)

c#webapi建议前端轮番查询订单状态     #region  查询扫码订单状态         /// <summary>         /// 查询扫码支付状态         /// </summary>         /// <param name="out_trade_no">支付订单号</param>         /// <returns></returns>         [HttpGe

iOS第三方支付-微信支付

微信支付用到的文件 1.首先支持非arc 2.设置URL types 3.AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    [WXApi registerApp:@"wxd930ea5d5a258f4f" withDescription:@"demo 2.0"];  

第三方支付之微信支付(扫码支付)

第一步:注册微信支付账户,开通扫码支付 具体流程请参照官方说明 第二步:创建Maven项目 1. 添加微信支付SDK依赖.二维码工具依赖(微信支付需要自己通过二维码工具生成支付二维码) <!-- 微信支付 --> <dependency> <groupId>com.github.wxpay</groupId> <artifactId>wxpay-sdk</artifactId> <version>0.0.3</ver

常用第三方接口,支付宝支付,微信支付,软著,IOS开发者账号

1.常用第三方接口支付费率介绍:https://www.ccxcn.com/blog/wap.asp?act=View&id=3572.微信开放平台支付申请流程:https://jingyan.baidu.com/article/f25ef254bb88b7482c1b8285.html3.支付宝开放平台支付申请流程:https://jingyan.baidu.com/article/c74d6000bbcf110f6a595d34.html4.软件著作权申请流程:https://jingyan