jsapi微信支付 -----适用于微信浏览器支付

**
* jsapi支付 只限于微信浏览器使用
*/
public function wxjspay(){
$notify_url = ""; //异步通知地址
$order_number = I('order_number'); //订单编号
$money = I('orderPrice'); //订单金额
//调用微信支付函数
Vendor('Wxpay.example.WxPay#JsApiPay');
Vendor('Wxpay.lib.WxPay#Api');
Vendor('Wxpay.lib.WxPay#Data');
Vendor('Wxpay.lib.WxPay#Config');
Vendor('Wxpay.lib.WxPay#Exception');
$notify = new \JsApiPay();
$openid = $notify->GetOpenid(); //获取openid 要配置微信公众平台,还要填写APPSECRET参数
$input = new \WxPayUnifiedOrder();
$input->SetBody('订单号:'.$order_number); //描述
$input->SetOut_trade_no($order_number); //订单号
$input->SetTotal_fee($money*100); //单位为分,只能传整数
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 60));
$input->SetNotify_url($notify_url);
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openid);
$order = \WxPayApi::unifiedOrder($input);
if($order['err_code'] == 'INVALID_REQUEST'){
$this->error('该订单已过期,请重新下单');
}
$jsApiParameters = $notify->GetJsApiParameters($order);
$this->assign('jsApiParameters',$jsApiParameters); //将返回结果传到前台页面
$this->display();
}

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>weixin</title>

<script type="text/javascript">
//调用微信JS api 支付
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{$jsApiParameters}, //通过js调起微信支付
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>
<div align="center">
<button type="button" οnclick="callpay()" >立即支付</button>
</div>
</body>
</html>
1、WeixinApi为何诞生 以前顺便玩儿了下微信公众账号,做Web前端开发的,都对页面脚本充满好奇,所以研究了下,放到Blog上, 也正因为微信官方一直没有放出正式的Api提供给用户来用,所以大量的用户到我blog上去询问WeixinJSBridge相关的技术点,索性我就整理了一下, 起个名字叫WeixinApi开源到github来,提供给大家使用! 2、免责声明 此Api为非官方版,由于官方的限制,继续使用此Api还有可能会出现一些意向不到的问题,一切后果请自行承担! 3、WeixinApi可能停止更新 目前官方已经出了正式版本的SDK,详情可见微信JS-SDK说明文档, 所以大家还是尽早迁移到官方版本吧,这对大家来说是好事,以后出什么问题,官方渠道应该都会第一时间给出解决方案,稳定很多,也不至于经常被黑! 本API可能以后就不会频繁更新了,各位知晓! 快速使用方法: // 定义微信分享的数据 var wxData = {     "appId": "", // 服务号可以填写appId     "imgUrl" : 'http://photocdn.sohu.com/20130122/Img364302298.jpg',     "link" : 'http://www.baidufe.com',     "desc" : '使用警告:此Api非官方版本,请各位尽量将分享功能迁移至腾讯官方版,会更稳定些!',     "title" : "欢迎使用WeixinApi" }; // 分享的回调 var wxCallbacks = {     // 收藏操作是否触发回调,默认是开启的     favorite : false,     // 分享操作开始之前     ready : function() {         // 你可以在这里对分享的数据进行重组         alert("准备分享");     },     // 分享被用户自动取消     cancel : function(resp) {         // 你可以在你的页面上给用户一个小Tip,为什么要取消呢?         alert("分享被取消,msg="   resp.err_msg);     },     // 分享失败了     fail : function(resp) {         // 分享失败了,是不是可以告诉用户:不要紧,可能是网络问题,一会儿再试试?         alert("分享失败,msg="   resp.err_msg);     },     // 分享成功     confirm : function(resp) {         // 分享成功了,我们是不是可以做一些分享统计呢?         alert("分享成功,msg="   resp.err_msg);     },     // 整个分享过程结束     all : function(resp,shareTo) {         // 如果你做的是一个鼓励用户进行分享的产品,在这里是不是可以给用户一些反馈了?         alert("分享"   (shareTo ? "到"   shareTo : "")   "结束,msg="   resp.err_msg);     } }; // 自定义分享到:微信好友、朋友圈、腾讯微博、QQ好友 WeixinApi.share(wxData,wxCallbacks); 标签:WeixinApi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值