作者寄语:
thinkphp整合系列之微信扫码支付
在支付发力后;现在也是不容小觑的;
在线下的很多场景中比支付宝更甚;
君不见连路边的小贩都支持二维码扫一扫支付了;
此处是省略500字的微信支付开通过程;
示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin
一:导入sdk
/ThinkPHP/Library/Vendor/Weixinpay
鹅厂的sdk那酸爽谁用谁知道;就不吐槽了;项目中的sdk是我根据官方文档重构精简打造而成的;
二:配置项
/Application/Common/Conf/config.php
'WEIXINPAY_CONFIG' => array(
'APPID' => '', // 微信支付APPID
'MCHID' => '', // 微信支付MCHID 商户收款账号
'KEY' => '', // 微信支付KEY
'APPSECRET' => '', // 公众帐号secert (公众号支付专用)
'NOTIFY_URL' => 'http://baijunyao.com/Api/Weixinpay/notify', // 接收支付状态的连接
),
开通微信支付后;会收到一封包含账号密码的邮件;登录微信支付凑齐上面这些参数;三:支付函数
/Application/Common/Common/function.php
/**
* 微信扫码支付
* @param array $order 订单 必须包含支付所需要的参数 body(产品描述)、total_fee(订单金额)、out_trade_no(订单号)、product_id(产品id)
*/
function weixinpay($order){
$order['trade_type']='NATIVE';
Vendor('Weixinpay.Weixinpay');
$weixinpay=new \Weixinpay();
$weixinpay->pay($order);
}
调用函数会生成一个二维码;用微信扫码即可支付;// 虚拟的订单 请根据实际业务更改
$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
/**
* notify_url接收页面
*/
public function notify(){
// 导入微信支付sdk
Vendor('Weixinpay.Weixinpay');
$wxpay=new \Weixinpay();
$result=$wxpay->notify();
if ($result) {
// 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id
}
}
和支付宝不同的是;微信支付并没有支付成功后跳转回来的过程;所以都是异步接收通知的;本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com