微信扫码支付(模式二)

微信扫码支付分为两种模式:

模式一比较复杂,需要公众号配置回调地址。

模式二比较简单,只需要在代码中配置回调地址就可以了。

这里使用的是模式二

微信扫码支付和公众号JSAPI支付前期准备工作一样,请参考:http://www.cnblogs.com/chenjiacheng/p/6522600.html

ini_set('date.timezone','Asia/Shanghai');
//error_reporting(E_ERROR);

require_once "../lib/WxPay.Api.php";
require_once "WxPay.NativePay.php";
require_once 'log.php';

$notify = new NativePay();

//模式二
/**
 * 流程:
 * 1、调用统一下单,取得code_url,生成二维码
 * 2、用户扫描二维码,进行支付
 * 3、支付完成之后,微信服务器会通知支付成功
 * 4、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php)
 */
$input = new WxPayUnifiedOrder();
$input->SetBody("test"); // 订单标题
$input->SetAttach("test"); // 订单描述
$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis")); // 订单号
$input->SetTotal_fee("1"); // 订单金额
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php"); // 异步通知地址
$input->SetTrade_type("NATIVE");
$input->SetProduct_id("123456789");
$result = $notify->GetPayUrl($input);
$url2 = $result["code_url"];

生成二维码,这个页面需要自己去美化。

<img alt="模式二扫码支付" src="http://paysdk.weixin.qq.com/example/qrcode.php?data=<?php echo urlencode($url2);?>" style="width:150px;height:150px;"/>

查询是否已支付,支付完成的话,进行订单数据处理。

这里的一切都是异步的,二维码页面啥都看不到。

只能通过异步获取订单状态来判断是否操作成功。

三秒执行一次,如果成功,进行跳转处理。

// 检测是否支付成功
$(document).ready(function () {
    setInterval("ajaxstatus()", 3000);
});

function ajaxstatus() {
    var orderno = $("#out_trade_no").val();
    if (orderno != 0) {
        $.ajax({
            url: "?m=home&c=order&a=ajax",
            type: "GET",
            dataType:"json",
            data: {
                todo: 'ajaxCheckWxPay',
                orderno: orderno,
            },
            success: function (json) {
                if (json.status == 1) { //订单状态为1表示支付成功
                    layer.msg('支付成功',{icon:1,time: 2000},function(){
                        window.location.href = "?m=home&c=order&a=payDone&orderno="+json.info['orderno'];
                    });
                   // window.location.href = "wxScanSuccessUrl.action"; //页面跳转
                }
            }
        });
    }
}

 

posted @ 2016-06-17 11:23  chenjiacheng  阅读(371)  评论(0)    收藏  举报