JSAPI 支付前需要调用 登录授权接口获取到用户的 Openid 。所以需要做一次授权,这次授权是不弹出确认框的。
其实质就是在用户访问:
//使用jsapi接口 $jsApi = new JsApi_pub(); //=========步骤1:网页授权获取用户openid============ //通过code获得openid if (!isset($_GET['code'])) { //触发微信返回code码 $url = $jsApi->createOauthUrlForCode(WxPayConf_pub::JS_API_CALL_URL); Header("Location: $url"); }else { //获取code码,以获取openid $code = $_GET['code']; $jsApi->setCode($code); $openid = $jsApi->getOpenId(); }
这一步的最终结果就是获得了当前用户的openid
JS API支付
前面的准备工作做好了以后,JS API根据prepay_id生成jsapi支付参数
生成代码如下:
//=========步骤3:使用jsapi调起支付============ $jsApi->setPrepayId($prepay_id); $jsApiParameters = $jsApi->getParameters();
生成的json数据如下
{ "appId": "wx8888888888888888", "timeStamp": "1414411784", "nonceStr": "gbwr71b5no6q6ne18c8up1u7l7he2y75", "package": "prepay_id=wx201410272009395522657a690389285100", "signType": "MD5", "paySign": "9C6747193720F851EB876299D59F6C7D" }
在微信浏览器中调试起js接口,代码如下
<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <title>微信安全支付</title> <script type="text/javascript"> //调用微信JS api 支付 function jsApiCall() { WeixinJSBridge.invoke( 'getBrandWCPayRequest', <?php echo $jsApiParameters; ?>, function(res){ WeixinJSBridge.log(res.err_msg); //alert(res.err_code+res.err_desc+res.err_msg); } ); } function callpay() { if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', jsApiCall); document.attachEvent('onWeixinJSBridgeReady', jsApiCall); } }else{ jsApiCall(); } } </script> </head> <body> </br></br></br></br> <div align="center"> <button style="width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer; color:white; font-size:16px;" type="button" onclick="callpay()" >贡献一下</button> </div> </body> </html>
当用户点击“贡献一下”按钮时,将弹出微信支付插件,用户可以开始支付。
支付通知
支付成功后,通知接口中也将收到支付成功的xml通知 :
<xml> <appid><![CDATA[wx8888888888888888]]></appid> <bank_type><![CDATA[CFT]]></bank_type> <fee_type><![CDATA[CNY]]></fee_type> <is_subscribe><![CDATA[Y]]></is_subscribe> <mch_id><![CDATA[10012345]]></mch_id> <nonce_str><![CDATA[60uf9sh6nmppr9azveb2bn7arhy79izk]]></nonce_str> <openid><![CDATA[ou9dHt0L8qFLI1foP-kj5x1mDWsM]]></openid> <out_trade_no><![CDATA[wx88888888888888881414411779]]></out_trade_no> <result_code><![CDATA[SUCCESS]]></result_code> <return_code><![CDATA[SUCCESS]]></return_code> <sign><![CDATA[0C1D7F2534F1473247550A5A138F0CEB]]></sign> <sub_mch_id><![CDATA[10012345]]></sub_mch_id> <time_end><![CDATA[20141027200958]]></time_end> <total_fee>1</total_fee> <trade_type><![CDATA[JSAPI]]></trade_type> <transaction_id><![CDATA[1002750185201410270005514026]]></transaction_id> </xml>
相关推荐
开发微信使用的 微信支付的接口, 在公众帐号上跳转到的 html页面上,使用js进行支付,里面有 java php asp c# 的例子
微信支付JS-SDK是微信官方提供的用于在网页端进行微信支付的开发工具包,主要针对JavaScript环境。在JAVA后端,我们需要与这个JS-SDK配合,以实现从服务器端调用微信支付接口,为前端提供安全可靠的支付服务。下面将...
- **JSAPI支付**:适用于网页端,通过JavaScript调用微信支付的JSAPI接口,引导用户在微信内完成支付。 - **Native扫码支付**:用户扫描商家生成的二维码完成支付,C#代码需要生成支付二维码链接。 ### 5. 安全性和...
2.JS微信网页内支付完整demo(demo演示帐号没有开通微信支付,故看不到效果) http://weixinsdk.deepleo.com(微信中打开) 3.其他基本API的实现以及demo 4.详细信息请参考:...
1. **微信支付API**:微信支付API是微信官方提供的接口,用于商家集成微信支付功能。它包括多种支付方式,如JSAPI支付、刷卡支付和扫码支付。JSAPI支付适用于网页端,通过JavaScript调用,用户无需跳转到微信APP即可...
封装好的微信支付js_api。php版本(请确认)。目前最新。
1. **预支付请求**:商家服务器通过调用微信支付的API接口,生成预支付订单,包含商品信息、金额等关键数据。 2. **返回预支付交易会话标识**:微信支付服务端响应后,会返回一个预支付交易会话标识(prepay_id),...
它通过在前端JavaScript中调用微信支付SDK,引导用户在微信内完成支付流程。在PHP端,你需要获取预下单(统一下单)的交易参数,然后将其转化为前端可以使用的json数据,最后在前端通过微信JSSDK进行支付接口调用。 ...
在这个Java网页Native微信支付源码中,我们可以深入理解微信支付的API调用、二维码生成以及支付回调处理等关键流程。 1. **微信支付接口调用**: - 微信支付提供了多种接口供开发者使用,如统一下单接口(Unified ...
在H5页面中引入微信支付JS文件,并调用`WeixinJSBridge.invoke`方法,传入生成的支付参数,从而唤起微信支付。 4. **处理支付结果**:用户完成支付后,微信会通过JSBridge通知H5页面支付的结果。你需要监听`...
在创建仿微信支付页面时,开发者通常会结合CSS(Cascading Style Sheets)和JavaScript来实现更丰富的交互效果。CSS用于控制网页的样式,包括颜色、布局和字体等,让网页看起来更接近微信支付的实际样式。而...
微信支付JSJDK(JavaScript SDK)是微信支付提供的用于在网页端实现微信支付功能的JavaScript库。它允许开发者在自己的网站上集成微信支付,使得用户可以通过微信钱包进行在线交易。在描述中提到“可以直接使用Java...
2. **JS SDK (JavaScript Software Development Kit)**:微信支付JS SDK是一套用于前端开发的工具集,提供了在网页中调用微信支付接口的JavaScript函数,如统一下单、支付结果查询等功能。 3. **JS API (JavaScript...
在此过程中,开发者需要理解微信支付的API规范,并使用Java语言编写相关代码来实现用户在H5(移动端网页)上的支付流程。下面将详细阐述这一过程的关键知识点: 1. **微信支付API**:微信提供了丰富的支付接口,...
JSAPI支付允许用户在微信内部通过JavaScript API完成支付,而扫码支付则让用户通过扫描二维码完成交易。微信二维码生成功能则用于创建可以链接到支付流程的二维码图片。 1. **JSAPI支付**: JSAPI支付是微信支付的...
首先,微信JS支付,全称为“微信支付JavaScript API”,是一种让用户在微信内置浏览器中完成支付的解决方案。它通过在网页中引入微信支付的JSAPI接口,结合微信提供的商户后台接口,实现用户无跳转支付体验。流程...
JSAPI(JavaScript API)是微信支付的一种方式,它允许在网页中调用微信支付接口,用户无须跳转到微信应用,即可完成支付流程。 3. **服务商模式**:在微信支付中,服务商模式是指为其他商家提供支付接入服务的第三...
微信支付后端DEMO(Java)是用于演示微信支付功能的一个示例项目,结合了微信小程序的JS代码、前端H5页面源码以及后台源码,帮助开发者快速理解和实现微信支付流程。在这个压缩包文件中,`WechatPayDemo-master` 是...
为了实现微信支付功能,开发者通常需要集成微信支付的JSAPI(JavaScript API),以便在网页中调用微信支付的接口。本文将详细介绍“微信支付demo”中所涉及的四个关键JS文件以及它们的作用。 首先,我们来看`wxpay-...
本文是对微信支付 JS API支付接口介绍,并附代码实例,在开发过程中具有参考价值,希望能帮助到需要的朋友