微信支付如何获取如何修改微信版本号号

如何获取绑定微信支付所需要的商户号及商户平台API密钥?
如何获取绑定微信支付所需要的商户号及商户平台API密钥?
如何获取绑定微信支付所需要的商户号及商户平台API密钥?
商户号及商户平台API密钥是绑定功能不可缺少的两大信息。
在成功申请微信支付功能后,微信方将会给商家发送一封“恭喜您成功通过微信支付商户资料审核”的邮件。邮件中附有商户平台证书和一些重要的信息。
其中,“微信支付商户号”即为在中所需填写的“商户号”。
通过邮件中的“商户平台登录账号”和“商户平台登录密码”,前往 。
在账户设置--操作证书中 安装安全控件 和 操作证书
1. 安装安全控件
2. 安装操作证书
完成证书安装。
在“API安全”中点击“设置密钥”(需完成上述安全控件及证书安装)。
点击“确认”。
设置32位密钥。
设置完成,即可前往绑定。
友好速搭,让商业更简单微信公众号支付 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 13时,
微信公众号支付的总体其实很简单,大致就分为三步。第一步需要获取用户授权;第二步调用统一下单接口获取预支付id;第三步H5调起微信支付的内置的js。
代码片段(3)
1.&[代码]第一步需要获取用户授权;&&&&
//获取openId
HttpClientUtil util = HttpClientUtil.getInstance();
Map&String, String& map = new HashMap&String, String&();
map.put("appid", WxPayConfig.APPID);
map.put("secret", WxPayConfig.APPSECRET);
map.put("code", code);
map.put("grant_type", WxPayConfig.GRANT_TYPE);
String returnStr = util.doPostRetString("https://api.weixin.qq.com/sns/oauth2/access_token", null,map);
logger.info("returnStr:[" + returnStr + "]");
AccessToken at = JSON.parseObject(returnStr, AccessToken.class);
AccessToken.java
public class AccessToken {
private String access_
private String expires_
private String refresh_
public String getAccess_token() {
return access_
public void setAccess_token(String access_token) {
this.access_token = access_
public String getExpires_in() {
return expires_
public void setExpires_in(String expires_in) {
this.expires_in = expires_
public String getRefresh_token() {
return refresh_
public void setRefresh_token(String refresh_token) {
this.refresh_token = refresh_
public String getOpenid() {
public void setOpenid(String openid) {
this.openid =
public String getScope() {
public void setScope(String scope) {
this.scope =
public String getUnionid() {
public void setUnionid(String unionid) {
this.unionid =
public String toString() {
return "AccessToken [access_token=" + access_token + ", expires_in="
+ expires_in + ", refresh_token=" + refresh_token + ", openid="
+ openid + ", scope=" + scope + ", unionid=" + unionid + "]";
2.&[代码]第二步调用统一下单接口获取预支付id;&&&&
//统一下单
WxPaySendData data = new WxPaySendData();
data.setAppid(WxPayConfig.APPID);
data.setAttach("微信支付");
data.setBody("微信公众号支付");
data.setMch_id(WxPayConfig.MCHID);
data.setNonce_str(nonceStr);
data.setNotify_url(WxPayConfig.NOTIFY_URL);
data.setOut_trade_no(tradeNo);
data.setTotal_fee((int)(fee*100));//单位:分
data.setTrade_type("JSAPI");
data.setSpbill_create_ip(ip);
data.setOpenid(at.getOpenid());
String returnXml = UnifiedorderService.unifiedOrder(data,WxPayConfig.KEY);
WxPayReturnData reData = new WxPayReturnData();
XStream xs1 = new XStream(new DomDriver());
xs1.alias("xml", WxPayReturnData.class);
reData = (WxPayReturnData) xs1.fromXML(returnXml);
UnifiedorderService.java
public class UnifiedorderService {
private final static Logger logger = LoggerFactory.getLogger(UnifiedorderService.class);
public static String unifiedOrder(WxPaySendData data,String key){
//统一下单支付
String returnXml =
//生成sign签名
SortedMap&Object,Object& parameters = new TreeMap&Object,Object&();
parameters.put("appid", data.getAppid());
parameters.put("attach", data.getAttach());
parameters.put("body", data.getBody());
parameters.put("mch_id", data.getMch_id());
parameters.put("nonce_str", data.getNonce_str());
parameters.put("notify_url", data.getNotify_url());
parameters.put("out_trade_no", data.getOut_trade_no());
parameters.put("total_fee", data.getTotal_fee());
parameters.put("trade_type", data.getTrade_type());
parameters.put("spbill_create_ip", data.getSpbill_create_ip());
parameters.put("openid", data.getOpenid());
parameters.put("device_info", data.getDevice_info());
logger.info("SIGN:"+WxSign.createSign(parameters,key));
data.setSign(WxSign.createSign(parameters,key));
XStream xs = new XStream(new DomDriver("UTF-8",new XmlFriendlyNameCoder("-_", "_")));
xs.alias("xml", WxPaySendData.class);
String xml = xs.toXML(data);
logger.info("统一下单xml为:\n" + xml);
HttpClientUtil util = HttpClientUtil.getInstance();
returnXml = util.doPostForString("https://api.mch.weixin.qq.com/pay/unifiedorder", null, xml);
logger.info("返回结果:" + returnXml);
} catch (Exception e) {
e.printStackTrace();
return returnX
public class WxSign {
private static String characterEncoding = "UTF-8";
@SuppressWarnings("rawtypes")
public static String createSign(SortedMap&Object,Object& parameters,String key){
StringBuffer sb = new StringBuffer();
Set es = parameters.entrySet();//所有参与传参的参数按照accsii排序(升序)
Iterator it = es.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
String k = (String)entry.getKey();
Object v = entry.getValue();
if(null != v && !"".equals(v)
&& !"sign".equals(k) && !"key".equals(k)) {
sb.append(k + "=" + v + "&");
sb.append("key=" + key);
String sign = MD5Util.MD5Encode(sb.toString(), characterEncoding).toUpperCase();
public static String getNonceStr() {
Random random = new Random();
return MD5Util.MD5Encode(String.valueOf(random.nextInt(10000)), "UTF-8");
public static String getTimeStamp() {
return String.valueOf(System.currentTimeMillis() / 1000);
3.&[代码]第三步H5调起微信支付的内置的js&&&&
//H5调起支付
attr.addAttribute("appId", reData.getAppid());
attr.addAttribute("timeStamp", WxSign.getTimeStamp());
attr.addAttribute("nonceStr", reData.getNonce_str());
attr.addAttribute("package", "prepay_id="+reData.getPrepay_id());
attr.addAttribute("signType", "MD5");
SortedMap&Object,Object& signMap = new TreeMap&Object,Object&();
signMap.put("appId", reData.getAppid());
signMap.put("timeStamp", WxSign.getTimeStamp());
signMap.put("nonceStr", reData.getNonce_str());
signMap.put("package", "prepay_id="+reData.getPrepay_id());
signMap.put("signType", "MD5");
logger.info("PaySIGN:"+WxSign.createSign(signMap,WxPayConfig.KEY));
attr.addAttribute("paySign", WxSign.createSign(signMap,WxPayConfig.KEY));
function getUrlParam(name) {
//构造一个含有目标参数的正则表达式对象
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
//匹配目标参数
var r = window.location.search.substr(1).match(reg);
//返回参数值
if (r != null)
return unescape(r[2]);
function onBridgeReady() {
var appId = getUrlParam('appId');
var timeStamp = getUrlParam('timeStamp');
var nonceStr = getUrlParam('nonceStr');
var Package = getUrlParam('package');
var signType = getUrlParam('signType');
var paySign = getUrlParam('paySign');
WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId" : appId,//"wx0ec43b", //公众号名称,由商户传入
"timeStamp" : timeStamp,//"", //时间戳,自1970年以来的秒数
"nonceStr" : nonceStr,//"e61463f8efacccfbbb444", //随机串
"package" : Package,//"prepay_id=u802345jgfjsdfgsdg888",
"signType" : signType,//"MD5", //微信签名方式:
"paySign" : paySign,//"70EABB79628FBCAFADD89" //微信签名
}, function(res) { // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回
ok,但并不保证它绝对可靠。
//alert(res.err_msg);
if (res.err_msg == "get_brand_wcpay_request:ok") {
alert("支付成功");
if (res.err_msg == "get_brand_wcpay_request:cancel") {
alert("交易取消");
if (res.err_msg == "get_brand_wcpay_request:fail") {
alert("支付失败");
function callPay() {
if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady,
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
onBridgeReady();
开源中国-程序员在线工具:
相关的代码(1)
7回/2616阅
2楼:墨-眉 发表于
3楼:x7LoveLin 发表于
httpUtil 没给出。
4楼:小崮 发表于
5楼:尚睿软件 发表于
我们做了很多微信支付的开发 &getBrandWCPayRequest 后面的json参数可以直接在后台生成,通过url传值不是很安全吧 也会影响性能
6楼:32Er43 发表于
7楼:laozhong__ 发表于
这个还是老版本的吧!
8楼:白石MAI 发表于
引用来自“laozhong__”的评论这个还是老版本的吧!是最新版本的,你可以去官网看看
9楼:番茄mc 发表于
10楼:laozhong__ 发表于
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数
11楼:java9 发表于
引用来自“laozhong__”的评论回复8楼
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数
});你的这个是js sdk 里面的,楼主的这个不需要使用sdk,也就是不需要加载js ,况且你这个使用的是sha1签名,新版使用md5签名。
12楼:laozhong__ 发表于
引用来自“laozhong__”的评论回复8楼
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数
});引用来自“java9”的评论你的这个是js sdk 里面的,楼主的这个不需要使用sdk,也就是不需要加载js ,况且你这个使用的是sha1签名,新版使用md5签名。好吧
你们慢慢用,你们会收到邮件的!
13楼:chenkd 发表于
开源从代码分享开始
白石MAI的其它代码没有更多推荐了,
不良信息举报
举报内容:
获取微信版本号 user agent
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!微信支付经营数据怎么查看 微信支付商户查看经营数据方法介绍_西西软件资讯
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ 微信支付经营数据怎么查看 微信支付商户查看经营数据方法介绍
V6.5.22 官方最新版
类型:社交聊天大小:54.3M语言:中文 评分:9.2
支付商户现在可以进行查看自己的经营数据,因此不少小伙伴们最关心的就是该怎么进行查看,想知道的小伙伴们,就让小编给大家详细的讲讲,一起来看看吧。支付商户查看经营数据方法介绍-入驻申请手机上就能签约-手机端可以查看“经营数据”-每日交易款结算情况通知-手续费账户余额提醒功能更新后,实现了商户后台移动化管理,脱离传统PC端的管理束缚,商户在手机端就可以完成各项管理设置。同时还更新了扫码充值、手续费发票开具查询、自动提现银行附言设置等功能并优化了证照图像识别功能。开通方式:通过支付商户助手公众号-我的帐号-经营数据,管理员根据流程指引开通该功能,还可以设置员工一起使用该功能。开通后,普通商户和服务商特约商户可以通过微信支付商户助手公众号查看交易、顾客、活动在内各个维度经营分析数据;普通服务商可以查询自己特约商户的交易分析;渠道类服务商也即将支持使用。
(27) 2017聊天软件大全包含;微信、QQ、探探、派派、陌陌等,其中微信和QQ都是大家日常使用聊天软件,用户使用方便简单,很多小伙伴都在使用的,探探、派派和陌陌都是用户进行交友的手机软件,在线进行配对交友,使用方便简单,不少小伙伴喜欢使用。关键是用户还能进行抢红包,和自己的好友进行互动的手机应用。...
12-01 / 54.3M
推荐理由:微信,可以群聊的手机对讲机。微信是腾讯公司推出的一个为智能手机提供即时通讯服务的免费应用程序。微信支
08-21 / 2.6M
推荐理由:微信抢红包神器,逢年过节都是有很多的朋友喜欢发红包的,过年的时候,除了抢红包,我们还有很多事情要忙,和
03-31 / 19.6M
推荐理由:监狱建筑师是一款模拟经营游戏,融合了策略元素,玩家需要在游戏中建造一座固若金汤的监狱,让囚犯们无所遁
11-15 / 228M
推荐理由:微信,最时尚的手机语音对讲软件!微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字
12-01 / 228M
推荐理由:很多使用iPad的用户不知道如何微信,其实微信iPhone版兼容iPad,苹果iPad平板电脑请看下边的安装方法主要功
10-19 / 37.9M
推荐理由:QQforMac是基于MacOSX平台的即时通讯软件,致力于通过简洁的界面、实用高效的即时沟通功能以及流畅的操作体
(76) 微信分身版是一款第三方的微信客户端,这款客户端可以支持用户同时登录多个微信账号,对于经常需要在多个微信号之间切换的微商们来说这款软件非常实用。微信目前不仅是一款社交软件还有很多人将其作为办公的通讯软件使用,因此很多人就会存在两个微信号,一个对公的,一个对私的。经常在两个微信号之间切换非常麻烦,这里西西给大家提供的微信分身版可以让你同时登录两个微信号,这样再也不用考虑登录这个账号收不到另一个账号信息...
02-27 / 4.6M
推荐理由:微信多开助手是一款可以让你同时登录多个微信号的软件,当你抢红包的时候要是多个微信号能抢到的也会多点,
02-27 / 3M
推荐理由:微信多开大师最新版是2017年最新稳定的微信多开软件。软件可支持一个手机上多开微信,只要手机配置高,可无
12-01 / 54.3M
推荐理由:微信,可以群聊的手机对讲机。微信是腾讯公司推出的一个为智能手机提供即时通讯服务的免费应用程序。微信支
08-21 / 2.6M
推荐理由:微信抢红包神器,逢年过节都是有很多的朋友喜欢发红包的,过年的时候,除了抢红包,我们还有很多事情要忙,和
11-27 / 34.7M
推荐理由:微信电脑版是腾讯公司基于QQ开发的一种可以用语音说的软件,不过手机是智能机才可以用的,拥有其独特的摇一摇
11-25 / 20.4M
推荐理由:微信,是一个生活方式超过三亿人使用的手机应用支持发送语音短信、视频、图片和文字可以群聊,仅耗少量流量
(22) 腹黑微信又名黑客破解微信,微信在当前国内的地位是不可动摇的,如果无法外部打倒,就要从内部瓦解,当然这些都是玩笑,一群极客们在无聊至极,或心怀远大理想的情况下对微信进行了破解,可以让大家在聊天时记录下所有信息,即使对方即发即撤在你面前也是无用哒,最逆天的就是智能抢红包功能,你可以在0-8秒的时间内进行设置,比如设8秒,红包发出最多8秒后就能自动被你抢到了。相关版本:一开始腹黑微信只有苹果版的,后来为了照顾...
01-24 / 34.0M
推荐理由:微信腹黑版其实就是微信的破解版,因为这个破解版可以查看撤回的消息以及自动抢红包,这款软件是由黑客团队
01-25 / 12.2M
推荐理由:腹黑微信电脑版是一个黑客团队进行破解后的作品,相信此举已经惹火了微信官方,所以大家要早些下载哟,以免
01-25 / 34.0M
推荐理由:黑客破解微信是一款高科技的微信应用,这款微信不同于官方版本,下载安装后,与人聊天,对方再也不能随意给
10-18 / 2.3M
推荐理由:微信多开助手破解版是一款微信多开软件,由于微信的限制,所以正常的话一部手机是只能安装一个微信的,但是
03-11 / 5.8M
推荐理由:行政联盟安卓版是一款非常不错的手机企业办公必备软件,它为企业人员带来了便捷化的功能,服务大家办公变得
08-22 / 21.9M
推荐理由:微信上面的飞机大战非常的火爆,让人不禁想起人人偷菜的时代,为了彰显自己的高超技术,小编打上了无敌破解
(25) 2016微信公开课pro版一经推出便广受欢迎,除了官方的营销策略,更是基于微信的庞大用户群体,这款微信新功能可以帮助用户数据化管理自己的网络生活,虽然推出时间不长,但已经有不少用户刷爆朋友圈了,大家也赶快下载体验吧!使用方法:微信公开课pro版怎么用?关注公众号微信公开课进去之后就能查看到。微信公开课pro版暂时不能在电脑上打开,只能在手机上打开,此方法仅用于手机。功能简介:在微信中,只要打开微信公开课pro版活...
01-11 / 1KB
推荐理由:2016微信公开课pro版昨晚刷爆了微信朋友圈,那么2016微信公开课pro版能不能再电脑上测试呢?答案肯定是可以
01-11 / 106M
推荐理由:2016微信公开课pro版是腾讯官方为1月11日维修公开课pro版准备的官方体验活动,2016微信公开课pro版我和微信
01-11 / 106M
推荐理由:2016微信公开课pro版昨天刷爆了朋友圈,小伙伴们纷纷展现了微信的注册时间、微信的第一个好友、查看2015发布
01-11 / 106M
推荐理由:2016微信公开课pro版当前异常火爆,微信作为国内社交行业的巨头,其一举一动都被人所关注,新的2016,新的微
01-11 / 1KB
推荐理由:2016微信公开课pro已经火热推出,当前腾讯官方已经进入营销环节,众小编一片激动,微信将会为这个网络社会带
01-11 / 1KB
推荐理由:2016微信公开课pro版是微信在1月10日晚间推出的一款微信新功能,通过个应用你可以查询自己微信是哪一日注册
(74) 寂寞交友由西西为大家整理一系列火热的社交应用,因为寂寞而交友,随着时代的发展,人们越来越无法满足现有的交际圈子,对于择偶标准的提高,催生出一系列单身男女的情感问题,压抑的情绪需要得到一定的释放,如果你想找寻属于自己的缘分,就赶快下载吧。交友软件排行:微信企鹅之子的基数之巨大,寂寞的时候摇一摇,潘磕幸不嵊写禾!不过企鹅之子也有个弊病,依托于QQ的用户资源,环肥燕瘦难以保证。来往“来往”是拼爹的,背靠大...
11-10 / 44.0M
推荐理由:全新的手机QQ2017版正式发布。qq2017新版本在保留原有功能基础上,加入2套趣味表情,并对UI进行简化设计,去
11-17 / 69.4M
推荐理由:陌陌下载安装,陌陌安卓版是类似于微信的一款基于真实地理位置的交友工具你可以通过陌陌认识周围的陌生人或者
11-29 / 47.8M
推荐理由:陌陌电脑版官方出品,现在西西软件园给大家提供一款电脑版本的陌陌哦。即使你没有智能手机,也能玩陌陌~您可
10-12 / 21.8M
推荐理由:来往推出来也有一段时间了,西西一直在默默关注这款社交软件的发展,从推广的力度来看,来往这款软件毋庸置
07-19 / 24.6M
推荐理由:使用来往应用端轻松对好友分组,轻松与自己的小圈子分享有趣的时刻。在来往,不用担心你的妈妈会看到你与朋
08-02 / 23.4M
推荐理由:点点虫app是一款阅后即焚聊天应用,最大限度的保障了用户的个人隐私,你可以在此发泻心中的不满及各类情绪,
12-0312-0112-0112-0111-3011-3011-2911-2911-2911-27
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载大家在使用微信支付的时候,都会涉及一个东西,那就是商户证书,今天春哥在给客户调试一分钱红包系统的时候,涉及到商户证书的概念,今天春哥就给大家讲讲关于商户证书那些事。
(1)获取商户证书
微信支付接口中,涉及资金回滚的接口会使用到商户证书,包括退款、撤销接口。商家在申请微信支付成功后,收到的相应邮件后,可以按照指引下 载API证书,也可以按照以下路径下载:微信商户平台(pay.weixin.qq.com)--&账户设置--&API安全--&证书下载【在操作之前会提示安装操作证书】 。证书文件有四个,分别说明如下:
表4.2:证书文件说明
pkcs12格式
(apiclient_cert.p12、
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
撤销、退款申请API中调用
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:)
证书pem格式
(apiclient_cert.pem)
从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
PHP等不能直接使用p12文件,而需要使用pem,为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl&pkcs12&-clcerts&-nokeys&-in&apiclient_cert.p12&-out&apiclient_cert.pem
证书密钥pem格式
(apiclient_key.pem)
从apiclient_cert.p12中导出密钥部分的文件,为pem格式
PHP等不能直接使用p12文件,而需要使用pem,为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl&pkcs12&-nocerts&-in&apiclient_cert.p12&-out&apiclient_key.pem
(rootca.pem)
微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性
该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性
部分工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用
(2)使用商户证书
◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用。
◆ 商户证书调用或安装都需要使用到密码,该密码的值为微信商户号(mch_id)
◆ PHP开发环境请使用商户证书文件apiclient_cert.pem和apiclient_key.pem&,rootca.pem是CA证书。
(3)商户证书安全
证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载。商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。
本文出处:,转载请注明出处(春哥QQ:
微信号:wocgtblog)

我要回帖

更多关于 获取微信版本号 的文章

 

随机推荐