1.设置支付页面
支付页面获取openid 可存入cookie
//微信支付页面
public function recharge() {
$userid = $_GET['userid'];
if ($userid) {
include PHPCMS_PATH . '/wxpay/lib/WxPay.Api.php';
include PHPCMS_PATH . '/wxpay/WxPay.JsApiPay.php';
include PHPCMS_PATH . '/wxpay/log.php';
$logHandler = new CLogFileHandler(PHPCMS_PATH . "'/wxpay/logs/" . date('Y-m-d') . '.log');
$log = Log::Init($logHandler, 15);
//var_dump(111);
//①、获取用户openid
$tools = new JsApiPay();
//var_dump(222);
$openId = $tools->GetOpenid();
}
include template('xxx', 'xxxxxx', 'xxx');
}
2.拆分支付拼装
ajax 传入金额拼装支付函数变量
public function getparameters() {
if ($_POST['userid'] && $_POST['openid'] && $_POST['money']) {
include PHPCMS_PATH . '/wxpay/lib/WxPay.Api.php';
include PHPCMS_PATH . '/wxpay/WxPay.JsApiPay.php';
include PHPCMS_PATH . '/wxpay/log.php';
$openId = $_POST['openid'];
$userid = $_POST['userid'];
$list['cate_name'] = '充值';
$list['amount'] = $_POST['money'];
$list['order_sn'] = time() . random(8) . '_' . $userid;
$tools = new JsApiPay();
//②、统一下单
$input = new WxPayUnifiedOrder();
//var_dump(444);
$input->SetBody($list['cate_name']);
$input->SetAttach($list['cate_name']);
$input->SetOut_trade_no($list['order_sn']);
$input->SetTotal_fee($list['amount'] * 100);
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://www.i-ev.com/wxpay/wechatnotify.php");
$input->SetTrade_type("JSAPI");
$input->SetOpenid($openId);
$order = WxPayApi::unifiedOrder($input);
$jsApiParameters = $tools->GetJsApiParameters($order);
$res = array('status' =>'1', 'info' => '成功', 'data' => json_decode($jsApiParameters,TRUE));
}else{
$res = array('status' =>'2', 'info' => '失败');
}
echo json_encode($res);exit;
}
3.前台修改
<script>
function paySub(){
var money = $('#chongzhi-num').val() || $('.current-num').attr('data-num');
//money = 0.01;
if(isNaN(money) || money == '' || money == undefined){
alert('请输入正确的金额');
return;
}
$.post('http://xxxxx&a=getparameters',{'money':money,'openid':'{$openId}','userid':'{$userid}'},function(data){
console.log(data);
if(data.status == 1){
//吊起微信支付
callpay(data.data);
}else{
alert('请重试');
}
},'json');
}
//调用微信JS api 支付
function jsApiCall(jsApiParameters) {
WeixinJSBridge.invoke('getBrandWCPayRequest',jsApiParameters,function(res) {
WeixinJSBridge.log(res.err_msg);
if (res.err_msg == "get_brand_wcpay_request:ok") {
window.location.href = "xxxxxx";
} else {
//返回跳转到订单详情页面
alert('支付失败');
window.location.href = "xxxx";
}
}
);
}
function callpay(jsApiParameters) {
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(jsApiParameters);
}
}
</script>
网友评论