?微信里的支付记录显示腾讯微信支付平台支付是什么意思

微信支付这么牛,为何留不住总经理?_网易科技
微信支付这么牛,为何留不住总经理?
用微信扫码二维码
分享至好友和朋友圈
(原标题:微信支付这么牛,为何留不住总经理?)
来源:本文转自[中二](ID:mid-two)公众号,网易科技略做修改最近多家媒体包括官方都公开确认:支付总经理吴毅离职,微信开发者圈大名鼎鼎的“xiaokang”、原微信产品部副总经理张颖继任。腾讯2015年报显示,微信支付总绑卡数3亿张,线下门店接入微信支付总数已超过30万家。背靠金融大背景和微信渠道,微信支付堪称中国互联网最顶级和最具想象空间的产品。对于互联网从业者来说,“微信支付总经理”这个岗位几乎是最梦寐以求的。然而,他的负责人却挥挥衣袖,离职加入创业公司分期乐。互联网行业最宝贵的就是这批顶尖从业者,所谓高管流动无小事,微信支付负责人的离职,其背后代表着很多含义,该怎样去理解呢?1.从组织结构上看,腾讯并没有与蚂蚁金服对标的部门。先需要理解的是,微信支付和腾讯金融业务是割裂状态。去年腾讯宣布撤销以财付通为主体构建的金融业务架构,全部划入到新的“支付基础平台与金融应用”线。这条线包括多个部门,分别为:支付平台部、理财平台产品部、平台研发部、金融市场部等。其中最关键的支付平台部具体业务为:基础支付产品中心、钱包产品中心、商业拓展中心、企业方案中心、征信中心、综合管理组和金融产品创新实验室。引出本文的吴毅,就是来自“腾讯金融业务线”前身的财付通,曾担任腾讯财付通产品总监,也是微信支付和微信红包的设计开发者。在2014年微信红包一战成名后,随着微信事业群成立,微信支付一并独立,由吴毅在张小龙麾下担纲。自此,腾讯的金融支付相关业务分成两个割裂的部分:腾讯金融业务线,以及微信事业群下的微信支付,名义上与微信对等的QQ,其支付业务“QQ钱包”却在金融业务线下。另外,还要算上腾讯集团之外,为腾讯两大支付渠道开发过小贷产品的微众银行。从业务分工上看,三块业务其实分为前端(微信支付)、后端(腾讯金融业务线)和“具备资质”的金融产品研发销售端(微众银行)。从结构上看,腾讯的金融业务散为三块,前端后端都是在腾讯组织结构内,并不是分公司。而在微众,腾讯只持有30%股份。因此,相对于正在独立融资,据称估值达到600亿美金的蚂蚁金服,腾讯实际并没有一个部门是与之真正对应和匹配的。微信支付,是个有前端有商务拓展,但没有后端运营的支付通道;腾讯金融业务线,其则没有最为关键的接触用户的通道,而手中没用户怎么开发产品。组织结构本质是人员配置的延续,前端和后端割裂,就会导致思路不统一和部门诉求不统一,自然就会影响业务进展。相比蚂蚁金服在金融领域的业务布局,以及近两年来在手机端的功能演进和迭代,微信支付在红包后的功能迭代明显慢下来,而腾讯金融业务线则罕有大作为,这个状况也许多少与架构有关联而财付通出身的吴毅离职后,由产品专家张颖继任,对微信事业群来说,好消息是张小龙对微信支付的掌控力更强了,微信支付与微信开发者、O2O生态连接更强了;但坏消息是,似乎金融业务线与微信支付的思路可能更难统一了。2.腾讯对金融业务的谨慎与员工诉求背离,也许才是人员离开的关键原因。其实,对于腾讯金融业务的高管们而言,业务团队之间思路难统一无大碍,顶多称之为烦心事,其更担心的是错过互联网改造金融浪潮中的机会。毕竟十几年的金融互联网工作经验和资源,也许等的就是这一天。但这个诉求似乎在腾讯很难得到满足,腾讯在金融业务方面的拓展速度并不快,这既包括上文说的业务散乱的状况,也包括各自产品功能的演进速度,很多朋友都谈起过腾讯高层在刻意限制金融业务触碰某些领域。随着国家对金融监管越发严厉,有微信与运营商OTT风波的腾讯,似乎在刻意回避监管,把盘子做大却不着急放蛋糕。所以,我们可以看到微信在每个支付场景中,包括打车、餐饮、商场、电商等等,都要争抢份额,但拿下份额后,却又放置不做深度运营和变现。腾讯可以等国家政策,员工却等不起。互联网金融是当下风险投资的乐园,巨头在迟疑之下释放出来的每个机会,创业公司都愿担风险接招。吴毅最终加盟分期乐担任总裁,由大公司高管到创业公司高管,这显然是非常有心做成一些事情,而腾讯却不能满足之。一边是等待上市的独立公司,一边是大公司业务单元,其员工心态自然就不同。微信支付高管的权力再大、掌握资源再多,终究也是打工者,吴毅最终不也是挥挥衣袖离开。事实上,炙手可热的微信从来不是个很能留住人的地方,其中不少员工都最终选择加入更有望套现的机会,比如蚂蚁金服无线事业部总经理,其就是微信最早的产品总监,说是奠基人之一也可以,但微信的辉煌显然与打工者们无关。3.腾讯可能也会最终走向分拆。其实解决高管和骨干中层流失的最好办法就是业务分拆,让员工和高管成为独立子公司股东,团队战斗力自然也攀升,还可以降低了母集团的政策风险。但对于分拆,腾讯在目前这个时间节点下,答案是一概否认。所以我们会发现,腾讯最高决策层近两年是相当保守的。
但在互联网公司大规模回归A股背景下,合称BAT的阿里正把分拆玩得热乎,当然阿里是主动分拆,包括蚂蚁金服、影业等;而百度则是被动分拆,比如最近的百度视频、外卖等。而结果是两家都从国内火热的资本市场找到新机会。腾讯走向分拆,是员工诉求,也是抓国内资本市场机会。目前来看,腾讯游戏业务的工作室策略,已经具备母集团与子公司架构,各游戏工作室都自成体系,而腾讯占大股的阅文集团已经是瞄准A股的子公司。但何时才能将模式拓展向金融、视频、广告、云计算业务,甚至微信和QQ这样最核心的业务,大概仍需要很长时间。
本文来源:网易科技报道
责任编辑:白鑫_NT4464
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈微信支付服务协议_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
微信支付服务协议
上传于||文档简介
&&微​信​支​付​服​务​协​议
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢扫一扫关注官方微信
后使用快捷导航没有帐号?
钻石会员, 积分 8218, 距离下一级还需 1782 积分
积分8218精华0阅读权限90注册时间在线时间122 小时最后登录分享主题记录好友日志相册帖子UID30068
Ta的其他好帖:
钻石会员, 积分 8218, 距离下一级还需 1782 积分
现在线下好多微信支付的,中午去买个可爱多,排队的都是用微信在支付,就目前的态势来说,支付宝线下岌岌可危
恭喜, 每10个回复奖励1个威望, 每贴最高奖励10威望。
总评分:威望 +2&
14:21&&送了1朵鲜花&&并留言:谢谢分享!
钻石会员, 积分 4496, 距离下一级还需 5504 积分
积分4496精华0阅读权限90注册时间在线时间89 小时最后登录分享主题记录好友日志相册帖子UID98348
钻石会员, 积分 4496, 距离下一级还需 5504 积分
凡是有利于消费者的我都支持&&绝不搞个人崇拜
12:39&&送了1朵鲜花&&并留言:Life is better when shared!
钻石会员, 积分 6550, 距离下一级还需 3450 积分
积分6550精华0阅读权限90注册时间在线时间70 小时最后登录分享主题记录好友日志相册帖子UID46878
钻石会员, 积分 6550, 距离下一级还需 3450 积分
顶LS,哪个实惠用哪个
环太平洋『一直在装逼从未停下来大奖赛』金奖
蓝钻会员, 积分 14247, 距离下一级还需 5753 积分
积分14247精华0阅读权限92注册时间在线时间292 小时最后登录分享主题记录好友日志相册帖子UID50009
实名认证勋章
热心会员勋章
环太平洋『一直在装逼从未停下来大奖赛』金奖
蓝钻会员, 积分 14247, 距离下一级还需 5753 积分
靠让利推销出来的 不用白不用
What you do not deserve makes you happiest
职业薅羊毛师
钻石会员, 积分 6365, 距离下一级还需 3635 积分
积分6365精华0阅读权限90注册时间在线时间163 小时最后登录分享主题记录好友日志相册帖子UID57038
职业薅羊毛师
钻石会员, 积分 6365, 距离下一级还需 3635 积分
薅毛要趁早啊,等普及的差不多了就没了,滴滴和快车就是例子。
白金会员, 积分 2248, 距离下一级还需 752 积分
积分2248精华0阅读权限70注册时间在线时间20 小时最后登录分享主题记录好友日志相册帖子UID114481
白金会员, 积分 2248, 距离下一级还需 752 积分
前两天在超市也看到微信支付,貌似挺方便
钻石会员, 积分 4293, 距离下一级还需 5707 积分
积分4293精华0阅读权限90注册时间在线时间264 小时最后登录分享主题记录好友日志相册帖子UID80884
钻石会员, 积分 4293, 距离下一级还需 5707 积分
本市只有LAWSON
苦逼射基湿一枚
New in Peking
钻石会员, 积分 8218, 距离下一级还需 1782 积分
积分8218精华0阅读权限90注册时间在线时间122 小时最后登录分享主题记录好友日志相册帖子UID30068
钻石会员, 积分 8218, 距离下一级还需 1782 积分
shijingshijing2 发表于
薅毛要趁早啊,等普及的差不多了就没了,滴滴和快车就是例子。
现在用滴滴,经常帮我给死机加消费,不晓得为什么
钻石会员, 积分 6835, 距离下一级还需 3165 积分
积分6835精华0阅读权限90注册时间在线时间376 小时最后登录分享主题记录好友日志相册帖子UID24873
钻石会员, 积分 6835, 距离下一级还需 3165 积分
随机立减,不如以前-10力度大啊
钻石会员, 积分 5884, 距离下一级还需 4116 积分
积分5884精华0阅读权限90注册时间在线时间51 小时最后登录分享主题记录好友日志相册帖子UID92307
实名认证勋章
星空联盟金卡勋章
希尔顿金卡勋章
希尔顿钻石卡勋章
喜达屋白金卡勋章
凯悦钻石会籍勋章
万豪白金卡勋章
钻石会员, 积分 5884, 距离下一级还需 4116 积分
szewin 发表于
本市只有LAWSON
本市几乎只剩全家。
钻石会员, 积分 3099, 距离下一级还需 6901 积分
积分3099精华0阅读权限90注册时间在线时间65 小时最后登录分享主题记录好友日志相册帖子UID90050
钻石会员, 积分 3099, 距离下一级还需 6901 积分
沙发好靠谱。
钻石会员, 积分 7273, 距离下一级还需 2727 积分
积分7273精华1阅读权限90注册时间在线时间335 小时最后登录分享主题记录好友日志相册帖子UID29214
钻石会员, 积分 7273, 距离下一级还需 2727 积分
szewin 发表于
本市只有LAWSON
南京只有苏果╮( ̄▽ ̄&)╭
钻石会员, 积分 3349, 距离下一级还需 6651 积分
积分3349精华0阅读权限90注册时间在线时间41 小时最后登录分享主题记录好友日志相册帖子UID107999
钻石会员, 积分 3349, 距离下一级还需 6651 积分
punkinside 发表于
凡是有利于消费者的我都支持&&绝不搞个人崇拜
英雄所见略同
钻石会员, 积分 4293, 距离下一级还需 5707 积分
积分4293精华0阅读权限90注册时间在线时间264 小时最后登录分享主题记录好友日志相册帖子UID80884
钻石会员, 积分 4293, 距离下一级还需 5707 积分
bisca 发表于
南京只有苏果╮( ̄▽ ̄&)╭
大连还有快客 哈哈哈
苦逼射基湿一枚
New in Peking
钻石会员, 积分 8978, 距离下一级还需 1022 积分
积分8978精华0阅读权限90注册时间在线时间91 小时最后登录分享主题记录好友日志相册帖子UID57742
钻石会员, 积分 8978, 距离下一级还需 1022 积分
能微信支付,但是没有活动······
支付宝和便利店还有合作活动
钻石会员, 积分 8577, 距离下一级还需 1423 积分
积分8577精华0阅读权限90注册时间在线时间494 小时最后登录分享主题记录好友日志相册帖子UID59230
钻石会员, 积分 8577, 距离下一级还需 1423 积分
广州优惠过个
钻石会员, 积分 8200, 距离下一级还需 1800 积分
积分8200精华0阅读权限90注册时间在线时间253 小时最后登录分享主题记录好友日志相册帖子UID91853
钻石会员, 积分 8200, 距离下一级还需 1800 积分
微信支付方便点
钻石会员, 积分 8200, 距离下一级还需 1800 积分
积分8200精华0阅读权限90注册时间在线时间253 小时最后登录分享主题记录好友日志相册帖子UID91853
钻石会员, 积分 8200, 距离下一级还需 1800 积分
微信支付方便点
钻石会员, 积分 6507, 距离下一级还需 3493 积分
积分6507精华0阅读权限90注册时间在线时间175 小时最后登录分享主题记录好友日志相册帖子UID59066
钻石会员, 积分 6507, 距离下一级还需 3493 积分
有两家能竞争最好,不能一家独大了
钻石会员, 积分 4067, 距离下一级还需 5933 积分
积分4067精华0阅读权限90注册时间在线时间39 小时最后登录分享主题记录好友日志相册帖子UID100799
实名认证勋章
南航金卡勋章
钻石会员, 积分 4067, 距离下一级还需 5933 积分
微信提现有次延迟了 让我遇到了困难 我是不会用微信支付了
通过认证的帅哥,特颁发此奖!
通过认证的美女,特颁发此奖!
实名认证勋章
通过实名认证获得的勋章
热心会员勋章
我热心.我光荣, 论坛繁荣做出贡献的同学,积分&10000
星空联盟金卡勋章
申请条件:1)星空联盟金卡会员;2)已通过实名认证;3)申请时需上传证明材料
希尔顿金卡勋章
申请条件:1)希尔顿金卡会员;2)已通过实名认证;3)申请时需上传证明材料
希尔顿钻石卡勋章
申请条件:1)希尔顿钻石卡会员;2)已通过实名认证;3)申请时需上传证明材料
喜达屋白金卡勋章
申请条件:1)喜达屋白金卡会员;2)已通过实名认证;3)申请时需上传证明材料
凯悦钻石会籍勋章
申请条件:1)凯悦钻石会籍;2)已通过实名认证;3)申请时需上传证明材料
万豪白金卡勋章
申请条件:1)万豪白金卡会员;2)已通过实名认证;3)申请时需上传证明材料
南航金卡勋章
申请条件:1)南航金卡会员;2)已通过实名认证;3)申请时需上传证明材料
国内信用卡常用链接
快速预订链接
扫一扫关注官方微信
扫一扫下载APP
Powered by 上海羽客旅游咨询有限公司 &
版权所有 沪ICP备号3689人阅读
微信公众号开发
最近开发的微信公众号需要开启公众号支付功能,经过几天时间的开发,终于搞定了,在这里记录一下开发流程,也给需要的朋友提供一点点帮助。
前面的公众号设置我就不多说了,直接进入代码开发。
1、在微信公众号支付的开发文档中,H5调起支付API页面有说明,需要在微信浏览器的内置对象WeixinJSBridge中调用getBrandWCPayRequest方法,该方法需要的参数为:
String(16)
商户注册具有支付权限的公众号成功后即可获得
String(32)
当前的时间,其他详见
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
随机字符串,不长于32位。推荐
订单详情扩展字符串
String(128)
prepay_id=
统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=***
String(32)
签名算法,暂支持MD5
String(64)
C380BEC2BFD727A4BF3AD6
签名,详见
因此在调用支付API之前必须准备好上述6个参数。公众号id,时间戳,随机字符串和签名方式都好说,下面介绍如何获取订单详情扩展字符串和签名。
2、获取订单详情扩展字符串
获取订单详情扩展字符串其实就是要获取prepay_id,在微信公众号支付的开发文档的API列表-&统一下单页面有获取prepay_id的参数列表,如下为获取prepay_id的方法:
* 获取prepay_id
AccessToken
* @author &****
@SuppressWarnings(&null&)
public static String getPrepayId(String userid, String addrip)
//公众账号ID
String appid = Config.APPID;
String mch_id = &**********&;
String device_info = &WEB&;
//随机字符串
String nonce_str = String.valueOf(Math.random());
//商品描述
String body = &1yuanmiaosha&;
//商品详情
String detail = &miaosha&;
//附加数据
String attach = &detail&;
//商户订单号
String out_trade_no = &**************************&;
//货币类型 &
String fee_type = &CNY&;
int total_fee = 1;
String spbill_create_ip =
//交易起始时间(供测试用)
String time_start = DateUtil.getNowTime().replace(&-&, &&).replace(& &, &&).replace(&:&, &&);
//交易结束时间(供测试用)
String time_expire = String.valueOf(Long.valueOf(time_start)+(long)320);
//商品标记(供测试用)
String goods_tag = &****&;
//通知地址(供测试用)
String notify_url =&&;
//交易类型
String trade_type =&JSAPI&;
//商品ID(供测试用)
String product_id = &&;
//指定支付方式
String limit_pay = &no_credit&;
//用户标识
String openid =
//签名(最后获取)
String []array = {&appid=&.concat(appid), &mch_id=&.concat(mch_id), &device_info=&.concat(device_info),
&nonce_str=&.concat(nonce_str), &body=&.concat(body), &detail=&.concat(detail), &
&attach=&.concat(attach), &out_trade_no=&.concat(out_trade_no), &fee_type=&.concat(fee_type),&
&total_fee=&.concat(String.valueOf(total_fee)),&
&spbill_create_ip=&.concat(spbill_create_ip), &time_start=&.concat(time_start), &time_expire=&.concat(time_expire),&
&goods_tag=&.concat(goods_tag), &notify_url=&.concat(notify_url), &trade_type=&.concat(trade_type),
&product_id=&.concat(product_id), &limit_pay=&.concat(limit_pay), &openid=&.concat(openid)};
//对数组进行字典排序
SignUtil.sort(array);
//组合成stringA
String stringA = new String() ;
String stringSignTemp = new String();
String sign = new String();
String xmlStr = new String();
String prepay_id = new String();
String key = &***************************************&;
for(int i = 0 ; i & array. i++)
stringA = stringA.concat(array[i].concat(&&&));
stringSignTemp = stringA.concat(&key=&).concat(key);
//对stringSignTemp进行MD5加密
MySecurity mySecurity = new MySecurity();
sign = mySecurity.encode(stringSignTemp, &MD5&);
//将sign所有的字母换成大写 &得到sign
sign = sign.toUpperCase();
System.out.println(&sign 为&+sign);
Map&String, String& paraMap = new HashMap&String, String&();
paraMap.put(&appid&, appid);
paraMap.put(&attach&, attach);
paraMap.put(&body&, body);
paraMap.put(&detail&, detail);
paraMap.put(&device_info&, device_info);
paraMap.put(&fee_type&, fee_type);
paraMap.put(&goods_tag&, goods_tag);
paraMap.put(&limit_pay&, limit_pay);
paraMap.put(&mch_id&, mch_id);
paraMap.put(&nonce_str&, nonce_str);
paraMap.put(&notify_url&, notify_url);
paraMap.put(&openid&, openid);
paraMap.put(&out_trade_no&, out_trade_no);
paraMap.put(&product_id&, product_id);
paraMap.put(&spbill_create_ip&, spbill_create_ip);
paraMap.put(&time_expire&, time_expire);
paraMap.put(&time_start&, time_start);
paraMap.put(&total_fee&, String.valueOf(total_fee));
paraMap.put(&trade_type&, trade_type);
paraMap.put(&sign&, sign);
String requestUrl = &https://api.mch./pay/unifiedorder&;
String xml = ArrayToXml(paraMap);
//System.out.println(& xml 为&+ xml);
xmlStr = HttpUtil.sendHttpsPOST(requestUrl, xml);
//转换编码格式
String start = &&prepay_id&&![CDATA[&;
String end = &]]&&/prepay_id&&;
prepay_id = xmlStr.substring(xmlStr.indexOf(start)+start.length(), xmlStr.indexOf(end));
return prepay_
&//用于字典排序
& & public static void sort(String a[]) {
& & & & for (int i = 0; i & a.length - 1; i++) {
& & & & & & for (int j = i + 1; j & a. j++) {
& & & & & & & & if (a[j].compareTo(a[i]) & 0) {
& & & & & & & & & & String temp = a[i];
& & & & & & & & & & a[i] = a[j];
& & & & & & & & & & a[j] =
& & & & & & & & }
& & & & & & }
public String encode(String strSrc, String encodeType) {
MessageDigest md =
String strDes =
byte[] bt = strSrc.getBytes();
if (encodeType == null || &&.equals(encodeType))
encodeType = MD5;//默认使用MD5
md = MessageDigest.getInstance(encodeType);
md.update(bt);
strDes = bytes2Hex(md.digest());
} catch (NoSuchAlgorithmException e) {
return strS
return strD
* map转成xml
* @param arr
public static String ArrayToXml(Map&String, String& arr) {
String xml = &&xml&&;
Iterator&Entry&String, String&& iter = arr.entrySet().iterator();
while (iter.hasNext()) {
Entry&String, String& entry = iter.next();
String key = entry.getKey();
String val = entry.getValue();
xml += &&& + key + &&& + val + &&/& + key + &&&;
xml += &&/xml&&;
public static String sendHttpsPOST(String url, String data) {
String result =
// 设置SSLContext
SSLContext sslcontext = SSLContext.getInstance(&TLS&);
sslcontext.init(null, new TrustManager[] { myX509TrustManager },
// 打开连接
// 要发送的POST请求url?Key=Value&Key2=Value2&Key3=Value3的形式
URL requestUrl = new URL(url);
HttpsURLConnection httpsConn = (HttpsURLConnection) requestUrl
.openConnection();
// 设置套接工厂
httpsConn.setSSLSocketFactory(sslcontext.getSocketFactory());
// 加入数据
httpsConn.setRequestMethod(&POST&);
httpsConn.setDoOutput(true);
OutputStream out = httpsConn.getOutputStream() ;
if (data != null)
out.write(data.getBytes(&UTF-8&));&
out.flush();
out.close();
// 获取输入流
BufferedReader in = new BufferedReader(new InputStreamReader(
httpsConn.getInputStream()));
int code = httpsConn.getResponseCode();
if (HttpsURLConnection.HTTP_OK == code) {
String temp = in.readLine();
/* 连接成一个字符串 */
while (temp != null) {
if (result != null)
result +=
temp = in.readLine();
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
至此已经获取到了prepay_id参数。
3、获取appId、timeStamp、nonceStr、package、signType、paySign参数传至JS页面
* 获取appId、timeStamp、nonceStr、package、signType、paySign
* @param userinfo
* @return string
public String getParameter()
BrandWCPayParameter brandWCPayParameter = new BrandWCPayParameter();
String key = &************************************&;
//从页面将用户openid传入
String userid = this.getRequest().getParameter(&userid&);
String addrip = this.getRequest().getParameter(&addrip&);
String appId = Config.APPID;
//timeStamp
String timeStamp = String.valueOf(System.currentTimeMillis()/1000);
//nonceStr随机字符串
String nonceStr=String.valueOf(Math.random());
String signType = &MD5&;
//package订单详情扩展字符串 &prepay_id
String prepay_id = new String();
prepay_id = HttpUtil.getPrepayId(userid,addrip);
String packAge = &prepay_id=& + prepay_
//获取签名
String []array = {&appId=&.concat(appId), &timeStamp=&.concat(timeStamp), &nonceStr=&.concat(nonceStr),
&package=&.concat(packAge), &signType=&.concat(signType)};
SignUtil.sort(array);
//组合成stringA
String stringA = new String() ;
String stringSignTemp = new String();
String paySign = new String();
for(int i = 0 ; i & array. i++)
stringA = stringA.concat(array[i].concat(&&&));
stringSignTemp = stringA.concat(&key=&).concat(key);
MySecurity mySecurity = new MySecurity();
paySign = mySecurity.encode(stringSignTemp, &MD5&);
//将sign所有的字母换成大写 &得到sign
paySign = paySign.toUpperCase();
brandWCPayParameter.setAppId(appId);
brandWCPayParameter.setNonceStr(nonceStr);
brandWCPayParameter.setPackAge(packAge);
brandWCPayParameter.setPaySign(paySign);
brandWCPayParameter.setSignType(signType);
brandWCPayParameter.setTimeStamp(timeStamp);
List&BrandWCPayParameter& list = new ArrayList&BrandWCPayParameter&();
list.add(brandWCPayParameter);
JsonConfig jsonConfig = JsonUtil.configJson(&yyyy-MM-dd HH:mm:ss&);
JSONArray json = JSONArray.fromObject(list, jsonConfig);
this.showjsondata(json.toString());
4、页面调用H5支付API
function onBridgeReady(){
//获取appId、timeStamp、nonceStr、package、signType、paySign
var addrip = &&%=addrip%&&;
var userid = &&%=user%&&;
var appId;
var nonceS
$.post('/weixin/cj/Cjaction!getParameter.action',{addrip:addrip,userid:userid},function(data)
var brandWCPayParameter =data[0];
appId = brandWCPayParameter.appId;
timeStamp = brandWCPayParameter.timeS
nonceStr = brandWCPayParameter.nonceS
signType = brandWCPayParameter.signT
packAge = brandWCPayParameter.packA
paySign = brandWCPayParameter.payS
alert(paySign);
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
&appId& : appId, & & //公众号名称,由商户传入 & &&
&timeStamp&: timeStamp, & & & & //时间戳,自1970年以来的秒数 & &&
&nonceStr& : nonceStr, //随机串 & &&
&package& : packAge, & &&
&signType& : signType, & & & & //微信签名方式: & &&
&paySign& : paySign & &//微信签名&
function(res){ & &&
if(res.err_msg == &get_brand_wcpay_request:ok& ) {
& &alert(&支付成功&);
},&json&);
//微信支付方法(点击按键调用)
function pay(){
if (typeof WeixinJSBridge == &undefined&){
& if( document.addEventListener ){
& & & document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
& }else if (document.attachEvent){
& & & document.attachEvent('WeixinJSBridgeReady', onBridgeReady);&
& & & document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
& onBridgeReady();
5、注意事项
获取prepay_id参数时,当商品描述、商品详情、附加数据三个参数为中文时会返回乱码或者签名错误,应该是编码格式的原因,但是具体是什么原因还不是很清楚,如有遇到相同情况的朋友且已解决还请告知;
一定要注意参数的大小写,本人由于大小写原因导致签名失败而浪费了很多时间;
由于急于调通支付功能,代码中存在一些不合理的地方还待优化,请自行甄别;
上述代码中部分方法定义于不同的类中,请自行组织不同类的方法。
6,如果上述材料能对您有任何帮助那么我倍感欣慰,下面是我开发的公众号二维码,有兴趣的朋友可以关注一下!!谢谢!!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3708次
排名:千里之外

我要回帖

更多关于 腾讯微信支付平台 的文章

 

随机推荐