thinkphp整合系列之微信扫码支付

来源:互联网 发布:dedelu.com最新域名 编辑:程序博客网 时间:2024/05/16 05:17

微信作为移动互联网的航空母舰;

在支付发力后;现在也是不容小觑的;

在线下的很多场景中比支付宝更甚;

君不见连路边的小贩都支持二维码扫一扫支付了;

此处是省略500字的微信支付开通过程;

示例项目:https://github.com/baijunyao/thinkphp-bjyadmin

一:导入sdk

/ThinkPHP/Library/Vendor/Weixinpay

鹅厂的sdk那酸爽谁用谁知道;就不吐槽了;项目中的sdk是我根据官方文档重构精简打造而成的;

二:配置项

/Application/Common/Conf/config.php

1
2
3
4
5
6
7
'WEIXINPAY_CONFIG'       => array(
    'APPID'              => ''// 微信支付APPID
    'MCHID'              => ''// 微信支付MCHID 商户收款账号
    'KEY'                => ''// 微信支付KEY
    'APPSECRET'          => ''// 公众帐号secert (公众号支付专用)
    'NOTIFY_URL'         => 'http://baijunyao.com/Api/Weixinpay/notify'// 接收支付状态的连接
    ),

开通微信支付后;会收到一封包含账号密码的邮件;登录微信支付凑齐上面这些参数;

三:支付函数

/Application/Common/Common/function.php

1
2
3
4
5
6
7
8
9
10
function weixinpay($order){
    $order['trade_type']='NATIVE';
    Vendor('Weixinpay.Weixinpay');
    $weixinpay=new \Weixinpay();
    $weixinpay->pay($order);
}

调用函数会生成一个二维码;用微信扫码即可支付;

1
2
3
4
5
6
7
8
9
// 虚拟的订单 请根据实际业务更改
$time=time();
$order=array(
    'body'=>'test',
    'total_fee'=>1,
    'out_trade_no'=>strval($time),
    'product_id'=>1
    );
weixinpay($order);

四:异步接收通知

/Application/Api/Controller/WeixinpayController.class.php

1
2
3
4
5
6
7
8
9
10
11
12
13
public function notify(){
    // 导入微信支付sdk
    Vendor('Weixinpay.Weixinpay');
    $wxpay=new \Weixinpay();
    $result=$wxpay->notify();
    if ($result{
        // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id
         
    }
}

和支付宝不同的是;微信支付并没有支付成功后跳转回来的过程;所以都是异步接收通知的;

/

public function notify(){
    // 下面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;
    file_put_contents('./notify.text'json_encode($_POST));
    // 导入微信支付sdk
    Vendor('Weixinpay.Weixinpay');
    $wxpay=new \Weixinpay();
    $result=$wxpay->notify();
    if ($result{
        // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id
         
    }
}


白俊遥博客

 

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

http://baijunyao.com/article/77
原创粉丝点击