5ucms论坛
标题:
微擎 js微信支付的应用讲解和实例代码
[打印本页]
作者:
admin
时间:
2017-5-29 18:57
标题:
微擎 js微信支付的应用讲解和实例代码
js支付体验好,不需要跳转,直接在本页面内完成支付,但是微擎给的代码非常简单
首先需要配置支付信息,在这里不多说了,主要是微擎后台和商户里面,重点说开发.先说前端,对于我们没有加载微擎公共开头结尾,那就要自己加载一些必须的代码.
<a href="javascript:void(0);" data-name="李白" class="weui_btn weui_btn_plain_primary weui_btn_inline">支付</a>
<?php
$wx = $_W['account']['jssdkconfig'];
$wx['url'] ='http://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ;
?>
<script>
window.sysinfo = {"uniacid":{php echo $this->weid},"acid":{$_W['acid']}};
var appIdstr = "{$wx['appId']}";
var timestampstr = "{$wx['timestamp']}";
var nonceStrstr = "{$wx['nonceStr']}";
var signaturestr = "{$wx['signature']}";
wx.config({
debug: false,
appId: appIdstr,
timestamp: timestampstr,
nonceStr: nonceStrstr,
signature: signaturestr,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage','showMenuItems','hideOptionMenu','chooseWXPay',
]
});
</script>
<script type="text/javascript" src='http://res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
<script src="{php echo $this->yobyurl}zepto.min.js"></script>
<script type="text/javascript" src="{$_W['siteroot']}app/resource/js/lib/mui.min.js"></script>
<script type="text/javascript" src="{$_W['siteroot']}app/resource/js/app/util.js"></script>
复制代码
<script>
$(function(){
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
$('.weui_btn').click(function(){
$.getJSON("{$ajaxurl}",{name:name}, function(data, status){
//这里传递参数到生成订单
if(status == 'success'){
util.pay({
orderFee : data.fee,
payMethod : 'wechat',
orderTitle : '微信支付金额' + data.fee + '元',
orderTid : data.ordertid,
module : 'yoby_test',
success : function(result) {//支付成功
$.alert('支付成功');
//可不写
},
fail : function(result) {//支付失败
$.alert('支付失败');
},
complete : function(result) {//无论成功失败
//可不写
}
});
}
});
});
});
});
</script>
复制代码
js代码就上面这么多,当然实际开发中需要自己调整代码,接着需要在site.php里面重要两个方法,一个是生成订单,一个是成功支付后的业务处理.开发中是不能传递参数到支付后的,所以首先把需要参数保存到订单中,一般
public function doMobilepay() {//生成订单 $ajaxurl就是指向这里的方法
echo json_encode(array('fee'=>$n,'ordertid'=>$sn));//生成订单要返回一个json,一般包括金额和订单号即可,注意订单号需要唯一
}
public function payResult($params) {//支付成功处理,非常重要,你支付后业务处理要放到这里面
if ($params['result'] == 'success' && $params['from'] == 'notify') {//里面放业务代码
需要注意,这里面$_W['openid']是获取不到的,用下面代码
$uid = $params['tag']['uid'];
$openid = $params['user'];
$weid = $params['uniacid'];
$tid=$params['tid'];//这就是生成的唯一订单号
$fee = $params['fee'];//金额
然后到订单表查询这个订单的信息包括传递的参数
}
}
复制代码
到此支付开发就完成了,送一个生成订单函数
支付涉及钱的处理,所以要经过多重测试,可以用0.01元来测试,确认没问题再正式上线,有条件可以公测.开发中订单表至少包含金额,订单号,openid,weid以及传递的参数字段.
欢迎光临 5ucms论坛 (http://bbs.5ucms.com/)
Powered by Discuz! X3.2