微信条码微信小程序支付接口口安全吗

微信推出条码支付“付款码” 无需密码和验证短信-移动支付网
微信推出条码支付“付款码” 无需密码和验证短信
来源:36氪&&&& 8:35
  昨天晚上微信钱包调整了页面并发出公告,增加&刷卡&功能。从今天开始,在 9 家线下指定商铺,微信用户可以出示条码进行支付,无需密码和短信验证。
  根据微信的用户协议,&刷卡&指的是用户授权财付通提供每天十次、额度300元以内的免除密码、短信动态码以及其他任何信息验证的支付服务。商家扫描您手机的二维码(或条码)后,财付通根据从微信零钱账户或者银行卡扣划交易款项至商家账户。同时腾讯在该协议中规定,& 任何通过您的手机或 SIM 卡发起的刷卡服务均视为您本人行为 &。
  今年三月份央行出于安全原因叫停了扫描二维码支付,最近传闻这一政策有所松动。上月微信 5.4 更新增加的&面对面&付款就是一种 C2C 的扫描二维码支付,和支付宝的付款码类似。而这次微信新增的&刷卡&功能可以称作是&出示二维码&支付。相比扫码支付,微信&刷卡&提供的二维码是动态的,每分钟更新一次,安全性上有所提升。
  不过从现有的 9 家商铺名单看来,微信的&刷卡&支付还处于试水阶段,而且与商户合作的细节比如费率和准入标准目前还不清楚。和它类似的,支付宝目前也支持在 711 和银泰等商户进行当面支付,但是是通过声波感应进行的。
  苹果Apple Pay发布之后,明显感觉到移动支付又 High 起来了。&
月点击排行您所在的位置: &
支付宝扫码支付怎么样?支付宝扫码支付安全吗?微信支付新骗局
时间: 08:52:13
编辑:huangyuan
来源:下载吧
手机支付宝(支付宝钱包)阿里巴巴集团支付...
  本软件可实现全自动支付宝批量付款,...
现在已经越来越多的人使用支付宝了,逛街购物,支付宝支付是不可缺少的一种支付方式,出门无需钱包,微信支付宝扫扫就能付款,对圈妹这种懒癌晚期的人来说&简直是大福利啊有木有?!但是这个功能已经被不法分子利用了,下面我们就来看看一个网友的亲身经历吧。以下就是骗子与网友的聊天记录用过微信支付的朋友都知道,微信钱包那里有个付款功能,但是微信与支付宝里的"付款二维码或条型码",千万千万不要随便发给别人,因为这个付款功能是要把你自己的钱刷走的!并且这个付款是不需要输入密码的!!!我分别打电话给支付宝和微信客服确认过的,确实是不需要密码就可以刷的!尽管这个付款的二维码每分钟都会变更,有效时长只有一分钟,但还是给不法分子可乘之机,当然我们也可以设置密码,但是会比较麻烦,每次支付都要重复相同的操作,如下:在使用微信支付宝的时候,要先了解功能,特别是涉及金钱的功能,扫码支付、转账等功能,时刻保持警惕!
分享给朋友:
下载1965次
下载6329次
下载1611次
下载36125次
下载36249次
下载120677次
下载14645次
下载2760次
下载102153次
下载304347次
热门关键字微信二维码支付的风险由谁买单
●微信二维码“付款”支付最重要的特色就是,在一定额度及次数内免除密码、短信动态码以及任何信息验证。这是一个不安全的支付模式,却又要在实践中广为应用。那么,出路只能是解决好风险防范问题或者风险发生后的责任分担问题,这样才能把一个不安全的支付模式转变成一个实质上安全的支付模式。
●根据微信支付“付款”用户协议的表述,非授权交易产生的所有损失都由用户本人承担。“付款”支付模式也没有足够安全的防护措施来防止非授权交易风险的发生。微信支付在推动市场发展、提高市场交易效率方面的功劳自然不容忽视,但是让消费者陷入危险也不得不令人重视。
●微信支付既然要推行与国际接轨的无密码支付方式,也自然应该推行与国际接轨的非授权交易责任承担机制——消费者在非授权交易中只承担有限责任的制度。对于微信支付,这并非强其所难。
时下各大商超都在力推二维码支付的应用,消费者只需要使用二维码支付轻轻一扫就可以完成结账过程,快捷的支付体验使得消费者对二维码支付追捧有加。但是,这种快捷的支付方式不免也会给消费者留下一个巨大的疑问,如果消费者手机丢失后,其他人使用消费者的手机进行二维码支付,这种冒用行为给消费者造成的财产损失应该怎样承担?同时,我们也不断地从新闻媒体报道中看见消费者扫描二维码导致财产损失的案件。
“收款”模式下的支付风险
微信支付的二维码支付包含“付款”(之前叫做“刷卡”)与“收款”(之前叫做“面对面收钱”)两项服务。“付款”与“收款”的主要区别在于,“付款”是商家用扫码枪或者摄像头扫描客户的二维码,而“收款”是用户用手机扫描商家的二维码,即前者为“被扫”,后者为“主扫”。
如果在网上检索“二维码支付”,可以搜索到许多用户扫描了二维码后发生财产损失的案例。主要都是二维码中包含病毒链接,扫描二维码后,手机自动下载了病毒信息,对用户手机中的信息进行盗取,进而侵害用户的财产。
在二维码支付推广之初,相关的支付模式一般都采取以微信支付“收款”为代表的“主扫”模式。而在使用手机扫描二维码的过程中,隐含的风险却是巨大的,因为消费者对二维码所含信息并不明确,肉眼并不能对二维码所含信息进行识别,除此之外消费者进行扫描之后,手机会自动跳转到相关链接所指引的网站,如果二维码所含链接对应的是钓鱼网站,或者木马下载,消费者进行相应操作,就会使手机中毒,消费者相关权益必然受到侵害。
和传统POS机的使用进行对比,微信支付“收款”无异于“裸奔”。传统POS机从理论上讲就是一台电脑,但是它是一个封闭的电脑。除了金融支付机构,其他人无法再在POS机上加载任何应用程序,POS机处于“与世隔绝”的环境中。而在微信支付“收款”中,手机充当了终端,但又是其他应用程序的载体,其他应用程序与微信支付“收款”之间并没有建立隔离措施,一旦手机其他应用程序感染病毒,势必也会影响到微信支付“收款”。
另外,值得一提的是,现有的支付安全措施多依赖于短信验证和邮箱验证,如果用户手机丢失,手机拾得者可以通过手机接收找回密码的短信,也可进入用户事前绑定的邮箱进行密码找回。所以,现有的诸多支付安全措施,在手机丢失的情形下就是一个“花瓶”而已,相关问题的核心在于手机终端功能的多样性导致风险的集中化。
也正因此,2014年3月央行对二维码线下支付发出“封杀令”,在人民银行支付结算司发表的《关于暂停支付宝公司线下条码(二维码)支付等业务意见的函》中明确指出:“线下条码(二维码)支付突破了传统受理终端的业务模式,其风险控制水平直接关系到客户的信息安全和资金安全。目前,将条码(二维码)应用于支付领域有关技术,终端的安全标准尚不明确。相关支付撮合验证方式的安全性尚存质疑,存在一定的支付风险隐患。”
在微信支付的后续发展过程中,逐渐摒弃了“收款”支付模式,而以“付款”模式作为主流支付模式。但是由于“付款”模式下,收款方需要对其传统的收款装置进行改造,存在一定的改造成本,因此目前大多数小型商超仍然沿用“收款”支付方式,相关支付风险仍然存在。
“付款”模式下的支付风险
“付款”支付最重要的特色就是在一定额度及次数内免除密码、短信动态码以及任何信息验证。这样做的好处是简化了交易流程,缩短了支付时间,这也是二维码支付便捷性的重要体现,也是二维码支付推广的关键步骤。但显而易见,这种支付方式的风险是非常大的,因为任何人只要能控制手机,就能控制二维码,就能用二维码进行支付交易,而这种情形在手机丢失的情况下是非常普遍的。
既然这是一个不安全的支付模式,却又要在实践中广为应用,那么出路只能是解决好风险防范问题或者风险发生后的责任分担问题,这样才能把一个不安全的支付模式转变成一个实质上安全的支付模式。
在国外信用卡实践中,针对上述问题,发卡行的普遍作法是在非授权交易风险发生后,承担绝大部分损失。如在,用户通常只需要承担50美元的损失,这一作法叫做持卡人在非授权交易中的有限责任制度。这其实是将非授权交易的绝大部分风险转移至发卡行,从而使得消费者在从事支付交易时的风险能够确定下来,并且维持在一个可以承受的低水平上。
那么微信“付款”支付模式,是怎样解决相关问题的呢?在微信支付“付款”用户协议中有这样的措辞:“任何通过用户的手机或SIM卡发起的付款服务均视为用户本人的行为,由此导致的一切法律责任均由用户本人承担。”也就是说,由于非授权交易产生的所有损失都由用户本人承担。简而言之,支付便捷的代价就是用户要承担非授权交易的一切后果。
既然在“付款”支付模式下,并不能有效分散用户面临的非授权交易产生的结果风险,那么“付款”支付模式又是否有足够安全的防护措施来防止非授权交易的发生呢?微信支付的确有一定的安全防护措施,即微信支付所称的安全系统。那么这个安全系统是什么呢?“微信支付安全”这样介绍到,“微信保护你的支付安全:联合银行提供支付安全技术保障,独立支付密码和手机短信双重验证,支付安全由中国人民财产保险股份有限公司承保。”
首先,“付款”支付模式下不需要任何验证措施,所以不可能是所谓的双重验证。其次,虽然微信支付宣传“你敢付,我敢赔”,保险公司将对用户损失进行相应赔偿,但目前在财付通官网上并没有能查阅到相关保险合同内容,相关理赔范围存疑,且相关理赔需要用户提供资料证明损失发生的真实性,但实际上这种举证是非常困难的,而更重要的是相关理赔条款并没有嵌入支付合同之中,效力存疑。最有可能的结果是联合银行提供的支付安全技术保障,但这个东西具体是什么并不明确,微信支付也没有给出一个详细的解释。现有的各家银行尚且不能很好地防止非授权交易的产生,这里所称联合银行提供的支付安全技术保障是否能够防止非授权交易的产生,非常值得怀疑。
可以看出,使用微信二维码支付存在巨大的非授权交易风险。
风险发生后的责任承担
从传统民法的角度来讲,上述风险发生后,消费者只有在能够证明微信支付存在过错的情形下,才能够要求微信支付承担赔偿责任,除此之外,消费者要么要求直接侵权人承担责任,要么自己承担所有损失。那么,从公平合理的理念来看,微信支付是否也有必要承担相关责任呢?
对于“收款”模式,其风险来源于目前技术上的障碍。微信支付为了抢占市场,在无法克服相关技术障碍的前提下,向消费者推行这种不成熟的技术,并让消费者承担不成熟技术带来的后果,这样看上去会公平吗?
腾讯这样一个大平台,应该有魄力去承担这种因终端设备中毒后的财产损失,如果腾讯自己都不相信自己在二维码技术上拥有强大的实力,又怎么能让消费者相信腾讯而安心使用微信支付呢?试想一下,腾讯宣传自己的杀毒软件多么多么好,但却连这样的小病毒都防不住,那不是明白着打脸吗?腾讯自家的杀毒软件拥有如此之多的专业技术人员,却抵抗不住犯罪分子的小小病毒程序,这难道不是腾讯人才选拔与培养方式上出现大Bug了吗?所以,腾讯应该对自己的杀毒软件保持信心,其信心最直接的体现就是敢于为终端设备中毒后的财产损失承担责任。而责任的存在,将会更加促进腾讯在二维码领域内技术的发展,将更加巩固腾讯在移动支付领域的领先地位。
而对于“付款”模式,微信支付实际上是想改变目前大量使用密码进行支付的现状,实现微信支付“闪电支付”的目标。而要使老百姓一瞬间接受无密码支付模式,难度是非常大的,但是微信支付却是相当聪明的。
首先,微信支付在用户开通服务的时候,只是例行公事的列示支付协议链接,并没有将特殊条款——授权无密码支付,进行额外提示。这样就能使得大量消费者在“不知情”的情况下进行无密码支付,从实际体验中认同无密码支付的便捷性。其次,微信支付在最初推出“付款”支付服务时,单笔无密码支付的限额为200元,这样的作法试图告诉消费者金额很小的交易不用密码也是可以接受的。可是,微信支付的用户协议中有这样的约定:如果用户继续使用本服务,则视为同意最新修订的协议内容。所谓最新修订的协议内容,目前来看就是将单笔无密码支付的限额提高到1000元。整体来看,微信支付实际上是试图从小额开始突破,逐渐扩大无密码支付的适用范围,渐进式地向消费者推行无密码支付方式。最后,微信支付会告诉消费者,微信支付拥有安全系统,包含多重防范措施来保护消费者的财产安全,虽然这些防范措施的适用性不置可否,但是的确给消费者使用微信支付带来一定的信心。
其实,推行无密码支付方式,各大商业银行应该也是很推崇的,因为它的确能加快交易结算流程,改善银行卡刷卡体验,促进银行卡的广泛使用。但是各大商业银行也深知在我国非授权交易责任承担体系并不健全的背景下,密码支付实际上是消费者防范非授权交易最后的盾牌,因此并不会建议消费者采用无密码支付方式。而如今微信支付的“付款”支付方式,实际上就是让消费者放下手中最后的盾牌,几乎赤裸的面对非授权交易风险。
微信支付的这种作法在推动市场发展,提高市场交易效率方面的功劳自然不容忽视,但是让消费者陷入危险之地也不得不令人重视。
微信支付既然要推行与国际接轨的无密码支付方式,也自然应该推行与国际接轨的非授权交易责任承担机制——消费者在非授权交易中的有限责任制度。而这实际上对微信支付而言,并非强人所难。首先,微信支付能够对异常数据进行监控,对异常的、反复的大额交易,微信支付有足够的自信心在技术上进行识别。其次,微信支付与手机绑定、身份证绑定,用户欺诈的可能性较低。再次,从美国实践来看,由支付机构承担非授权交易的绝大部分责任,并没有使得支付机构的营业成本显著提升。最后,微信支付责任的承担,也会鞭策微信支付技术的发展,也是微信支付技术自信心的表现。
其实,微信支付对此也是基本认同的,所以才会推出“你敢付、我敢赔”的宣传口号。但是这种由保险公司进行赔付的方式,对于消费者而言,仍然存在举证难、理赔慢、适用范围有限的问题。只有建立消费者有限责任制度,才能真正实现“你敢付、我敢赔”的宣传口号,也能推动我国支付市场更快速、健康的发展。
(作者单位:北京大学法学院金融法研究中心)
免责声明:本文仅代表作者个人观点,与环球网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
环球时报系产品
扫描关注环球网官方微信
扫描关注 这里是美国微信公众号
扫描关注更多环球微信公众号3600人阅读
JavaSE(244)
JavaEE(237)
1.支付能力介绍:
刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。主要应用线下面对面收银的场景。
扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。
公众号支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。应用场景有:
用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付
用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付
将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付
APP支付又称移动端支付,是商户通过在移动端应用APP中集成开放SDK调起微信支付模块完成支付的模式。
2.支付流程
步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【】。
步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
步骤4:商户APP调起微信支付。api参见本章节【】
步骤5:商户后台接收支付通知。api参见【】
步骤6:商户后台查询支付结果。,api参见【】
服务器需要返回给客户端的信息
&appid&:&wxa7d1ec77cbf51cef&,
&msg&:&ok&,
&noncestr&:&MS40NzI2NTQ4NjI1OTMzMDQ4RTg=&,
&package&:&Sign=WXPay&,
&partnerid&:&&,
&prepayid&:&wxe8d&,
&sign&:&D6BEF6E1CE646B37DDE81D5&,
&timestamp&:&&
【注意事项】
1.公众号支付只能在微信环境中使用,普通的浏览器不支持,因为其使用了他的私有js对象。
2.公众号支付和App支付对应不同的商户号,这点管理起来可能不太方便。
3.交易金额默认为人民币交易,接口中参数支付金额单位为【分】,参数值不能带小数。对账单中的交易金额单位为【元】。外币交易的支付金额精确到币种的最小单位,参数值不能带小数点。
4.公众号支付和App支付使用的某些键有时候是下划线,有时候又是驼峰,特别需要注意。
5.微信支付更多使用XML构造协议数据,可以使用XML工具构造【带XML头xml?】,也可以拼接。
6.回调等最好使用https协议增强安全性。
7.微信支付采用了先生成预支付订单的方式,如果用户在第一次支付生成预支付订单之后取消支付,那么重新发起支付就不能再生成一个预支付单,避免重复,所以需要在第一次保存住这个预支付订单。
8.公众号支付需要在微信公众号中做一些域名相关的设置【四项】和在商户平台的API安全中做apikey的设置。
9.APIKEY来自于商户平台,通过商户信息登录商户平台之后自己设置32个字符的密码。
10.公众号支付的时候支付方式为JSAPI,参数中必须带上openid,即用户的微信号在微信公众号中的唯一标识。
获取这个openid需要通过oauth2授权,流程如下:
①提交订单,然后跳转到授权页面
window.location.href=&../h5/Order/wxpayAuth?tradeId=&+tradeId;
②授权处理,参数tradeId通过state传递
tradeId&= getPara(&tradeId&);
&&&&&&&String oauth2URL&=
&https://open./connect/oauth2/authorize?appid=&&+ WxpayConfig.APPID_HTML
&&&&&&&&&&&&&&&&+
&&redirect_uri=&&+ SystemConfigUtil.getSystemConfig().getHostPrefix()
+ JFinal.me().getContextPath()
&&&&&&&&&&&&&&&&+
&/h5/Order/wxpayAuth&&+
&&response_type=code&scope=snsapi_base&state=&&+
tradeId&+
&#wechat_redirect&;
&&&&&&&&// 1.获取用户code
&&&&&&&&String
code&= getPara(&code&);
&&&&&&&if(StrKit.isBlank(code)){//
不存在就触发微信的调用
&&&&&&&&&&&&HandlerKit.redirect301(oauth2URL,
getRequest(), getResponse(), new&boolean[1]);
&&&&&&&&&&&&tradeId&=
getPara(&state&);
&&&&&&&&&&&&HashMap&String, Object&
tokenmap&=
new&HashMap&String, Object&();
&&&&&&&&&&&&tokenmap.put(&appid&,
WxpayConfig.APPID_HTML);
&&&&&&&&&&&&tokenmap.put(&secret&,
WxpayConfig.SECRET_HTML);
&&&&&&&&&&&&tokenmap.put(&code&,
&&&&&&&&&&&&tokenmap.put(&grant_type&,
&authorization_code&);
&&&&&&&&&&&&String
tokenJson&=
&&&&&&&&&&&&try{
&&&&&&&&&&&&&&&&tokenJson&=
HttpUtil.getHttpByGet(&https://api./sns/oauth2/access_token&,
tokenmap);
&&&&&&&&&&&&}
&&&&&&&&&&&&catch(Exception
&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&return;
&&&&&&&&&&&&}
&&&&&&&&&&&&JSONObject
data&= JSON.parseObject(tokenJson);
&&&&&&&&&&&&JSONObject
object&= getOrderInfo(tradeId);
&&&&&&&&&&&object.put(&tradeId&,
&&&&&&&&&&&&object.put(&openid&,
data.getString(&openid&));
&&&&&&&&&&&String
return_url&= SystemConfigUtil.getSystemConfig().getHostPrefix()
+ JFinal.me().getContextPath()
&&&&&&&&&&&&&&&&&&&&+
&/website/wxpay.html&;
&&&&&&&&&&&try{
&&&&&&&&&&&&&&&&getResponse().sendRedirect(return_url&+
&?result=&&+ URLEncoder.encode(object.toString()));
&&&&&&&&&&&&}
&&&&&&&&&&&&catch(IOException
&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&}
参考资料:
微信开放平台官方资料
方培工作室:微信网页支付
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:350069次
积分:6212
积分:6212
排名:第4223名
原创:195篇
转载:485篇
评论:185条
(2)(1)(1)(1)(43)(43)(2)(1)(1)(5)(4)(13)(3)(1)(6)(2)(5)(36)(14)(6)(121)(182)(147)(35)(5)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'微信支付的那些坑!
最近在研究微信支付,感觉在微信里面买东西,直接微信支付还是蛮方便的,没有支付宝那么麻烦,刷刷朋友圈,顺便就买点东西,生活是如此的惬意,心想微信的这个支付肯定可以做到很牛逼,因为“钱景”无限啊!于是,我开始了这个噩梦般的旅程。
开通和审核
微信支付和支付宝商家平台一样,都是要审核资质的,支付宝个人认证可以使用担保支付,虽然需要用户确认收货之后才能收到资金,但是好歹也是能用的。微信直接不让个人使用支付。只有企业以上级别的服务号才能申请。
支付宝注册企业账号,进行企业认证,我总共就花了10分钟,包括公司资质审核,打款到公账确认公账等步骤。效率高到简直无法想象。 微信支付需要已经认证过的服务号才能开通支付。提交完资质,等待审核,花了5个工作日的时间才告诉我资质审核过了,对,没错,是5个工作日,中间隔了一个周末,微信称2-7个工作日认证完成,还是实现诺言了。
支付宝需要签约服务,这里我签约的是即时到帐的,花了2天时间。 微信开通认证之后,登陆商户平台配置一下就可以开干了,这点从速度方面比支付宝强点,因为它把支付用途啥的都放到第一步的认证里面了,而支付宝是放在后面的签约服务里面进行审核的。
这些步骤完成之后,就可以开始开发了。虽然如此,从整体进度上面,支付宝还是略胜微信一筹的。
根据文档接入支付宝和微信的支付平台
支付宝我就没看文档,因为之前有做过,已经大体了解了。直接下了个DEMO改改就完成了。 微信的文档,恩,在微信公众平台有一份,在商户平台又有另外一份,而且内容还不一样。。。 我主要需要在公众号里面支付,所以选择了微信的JSAPI。在公众平台里面,关于JS支付的只有一小段。如下:
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '', // 支付签名随机串,不长于 32 位
package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '', // 支付签名
success: function (res) {
// 支付成功后的回调函数
备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
微信支付统一下单接口文档:http://pay./wiki/doc/api/index.php?chapter=9_1
微信支付签名算法:http://pay./wiki/doc/api/index.php?chapter=4_3
微信支付开发教程:https://mp./paymch/readtemplate?t=mp/business/course3_tmpl&lang=zh_CN
看完方法,有点晕,在看完下面给出的三个链接里面的内容,更晕了。然后又在商户平台找到一份文档。
这里给了比较详细的资料,也给出了js示例:
注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。
示例代码如下:
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
&appId& : &wx0ec43b&,
//公众号名称,由商户传入
&timeStamp&:& &,
//时间戳,自1970年以来的秒数
&nonceStr& : &e61463f8efacccfbbb444&, //随机串
&package& : &prepay_id=u802345jgfjsdfgsdg888&,
&signType& : &MD5&,
//微信签名方式:
&paySign& : &70EABB79628FBCAFADD89& //微信签名
function(res){
if(res.err_msg == &get_brand_wcpay_request:ok& ) {}
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回
ok,但并不保证它绝对可靠。
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();
恩,于是我结合了文档和找到的demo,结合这一段内容开始测试,结果发现,完全没反应。是的,在我的iPhone上面是没有反应的,也许哪里出了问题,一直搞不出反应。 然后我想到了前面还有一种chooseWXPay,搜索了一下,这是新版接口的方法。结合下面的文档参数的计算,成功了。结果是这样的
wx.chooseWXPay({
appId: '{{ $jsParameters['appId'] }}',
timestamp: '{{ $jsParameters['timeStamp'] }}', // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: '{{ $jsParameters['nonceStr'] }}', // 支付签名随机串,不长于 32 位
package: '{{ $jsParameters['package'] }}', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
signType: '{{ $jsParameters['signType'] }}', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: '{{ $jsParameters['paySign'] }}', // 支付签名
success: function (res) {
if(res.errMsg == &chooseWXPay:ok& ) {
//支付成功
alert(res.errMsg);
cancel:function(res){
//支付取消
这里的$jsParameters是在后台使用微信支付的DEMO里面提供的class生成的。
include_once(&WxPayPubHelper.php&);
public function getParameters(Order $order)
$jsApi = new JsApi_pub();
$unifiedOrder = new UnifiedOrder_pub();
//$unifiedOrder-&setParameter(&detail&, $this-&order-&product-&brief_desc);//商品描述
$unifiedOrder-&setParameter(&body&, $order-&product-&name);//商品描述
$unifiedOrder-&setParameter(&out_trade_no&, $order-&order_number);//商户订单号
$unifiedOrder-&setParameter(&total_fee&, $order-&price * 100);//总金额,腾讯默认支付金额单位为【分】
$unifiedOrder-&setParameter(&notify_url&, WxPayConf_pub::NOTIFY_URL);//通知地址
$unifiedOrder-&setParameter(&trade_type&, &JSAPI&);//交易类型
//非必填参数,商户可根据实际情况选填
$unifiedOrder-&setParameter(&openid&, Auth::user()-&wx_openid);//商品ID
$unifiedOrder-&setParameter(&product_id&, $order-&product-&id);//商品ID
$prepay_id = $unifiedOrder-&getPrepayId();
$jsApi-&setPrepayId($prepay_id);
return $jsApi-&getParameters();
我描述你一脸啊,明显第一个是用户openid
支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
你很难搞清楚啥时候改用大写,啥时候该用小写。
备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方法,注意这里 appId 也要参与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
就是在调用chooseWXPay的时候,你要自己加上appId,注意,I是大写。否则采用JSAPI方式的时候会提示出错。
注:JS API的返回结果get_brand_wcpay_request:ok仅在用户成功完成支付时返回。由于前端交互复杂,get_brand_wcpay_request:cancel或者get_brand_wcpay_request:fail可以统一处理为用户遇到错误或者主动放弃,不必细化区分。
function(res){
if(res.err_msg == &get_brand_wcpay_request:ok& ) {}
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回
ok,但并不保证它绝对可靠。
老版的接口里面是这样描述返回结果的。但是在新版里面变了,是变了,但是满世界找不到变成啥样了。只能自己打出来测试,结果变成如下
success: function (res) {
if(res.errMsg == &chooseWXPay:ok& ) {
//支付成功
新版接口里面取消是没有反应的,因为只有success回调。没有任何一个地方说了如何监听用户取消支付。只能自己猜,结果,我果然猜对了。
success: function (res) {
if(res.errMsg == &chooseWXPay:ok& ) {
//支付成功
alert(res.errMsg);
cancel:function(res){
//支付取消
你以为是res.errMsg == &chooseWXPay:cancel&吗?骚年,你还是太年轻。
1、要设置好安全支付目录。这个啥意思?
1、所有使用JS API方式发起支付请求的链接地址,都必须在支付授权目录之下;
2、最多设置3个支付授权目录, 且域名必须通过ICP备案;
3、头部要包含http或https,须细化到二级或三级目录,以左斜杠“/”结尾。
修改会影响线上交易,距正式生效有十分钟左右延迟,建议你避开交易高峰时间修改
就是说,你将要调用JSAPI的那个页面的链接要在这个目录之下才可以。否则,会弹出提示说你的目录没权限。比如你调用JSAPI的页面地址为
http://www.xx.oo/pay/order/1
那么你要把安全目录设置为
http://www.xx.oo/pay/order/
这样设置之后,如果你在如下地址调用,则会报错
http://www.xx.oo/pay/newOrder/1
你可以设置多个支付目录,如果需要的话。
2、设置回调地址,这个不解释。
3、设置警告地址,不解释。
4、商户平台里面设置密钥,在登录了商户平台之后,位于账户设置-API安全里面,先装数字证书,然后设置密钥,32位字符串。设置完了,自己记下来,没错,要自己记下来,因为没法再查看了。
本文已收录于以下专栏:
相关文章推荐
1.首先我们先下载微信支付的服务器端demo
2.个文件作用介绍
index.jsp  下单  payRequest.jsp  获取微信支付prepay_id等。
...
$(function() {
$('a').on('click', function() {
onBridgeReady();
1 Weixin JS接口
1.1 隐藏微信中网页右上角按钮
1.2 隐藏微信中网页底部导航栏
1.3 网页获取用户网络状态
1.4 关闭当前网页窗口
Weixin JS接口Weixin JS接...
微信支付主要就是三步:1.组装数据生成预支付ID,2.调起微信支付接口,3.结果处理
$(&#getBrandWCPayRequest&).click(function() {
首先,我先简要说明一下微信支付开发的流程
      众所周知,工欲善其事,必先利其器,微信官方推出了web微信开发工具,有windows、linux、版本的,根据自己的开发环境选择合适自己的,现将连...
以下博文资料转自:
http://blog.csdn.net/Tom_xiaoxie/article/details/?locationNum=7&fps=1
Java版的微信支付开发
关于签名的算法,api提供的原文是:
1.签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序...
此处拿微信支付来举例,支付宝支付同理
添加WXApiDelegate
//不同iOS版本的回调函数不同,但也大同小异,具体不再列举。
- (BOOL)application: (UIApplic...
微信的统一下单接口(https://api.mch./pay/unifiedorder)中,下单时,有这样一个参数:notify_url,该参数是为接收微信支付异步通知回调的...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 微信 支付宝 条码规则 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信