赞
踩
十分钟搞定微信H5支付(ThinkPHP5.1)
之前接过的支付都是jssdk支付,也就是在微信浏览器环境下的支付,这次有个项目需要对接H5支付,这里记录下
准备
首先微信公众号要开通微信支付功能,并绑定商户号
开通微信H5支付服务,审核大概需要1天左右
代码部分
配置参数
在config目录下,新建wechat.php文件,写入如下配置
/**
*微信配置参数
*/
return [
'auth' => [
'appid' => '',
'appsecret'=> '',
],
'pay' => [ //微信支付用这里的参数
'appid'=> 'APPID',
'mch_id'=> 'MCH_ID', //商户号
'notify_url'=> '', //支付结果通知地址,填写你接收通知的url
'key'=> 'E918BB87E7BF1B73359AA378550A2598', //这个key是在商户平台配置的好像,随便生成一个md5就可以
]
];
支付类WechatAppPay.php
提供订单相关的功能,例如统一下单(主要),查询订单信息,关闭订单等,这里只贴出了支付需要用到的部分
我将这个库文件,放在了application/extra目录下面, tp5.1extra目录需要自己创建一下就好了,
如果想放在其他地方,将代码中的namespace改一下再用.
namespace app\extra;
class WechatAppPay
{
//接口API URL前缀
const API_URL_PREFIX = 'https://api.mch.weixin.qq.com';
//下单地址URL
const UNIFIEDORDER_URL = "/pay/unifiedorder";
//查询订单URL
const ORDERQUERY_URL = "/pay/orderquery";
//关闭订单URL
const CLOSEORDER_URL = "/pay/closeorder";
//公众账号ID
private $appid;
//商户号
private $mch_id;
//随机字符串
private $nonce_str;
//签名
private $sign;
//商品描述
private $body;
private $scene_info;
private $attach;
//商户订单号
private $out_trade_no;
//支付总金额
private $total_fee;
//终端IP
private $spbill_create_ip;
//支付结果回调通知地址
private $notify_url;
//交易类型
private $trade_type;
//支付密钥
private $key;
//证书路径
private $SSLCERT_PATH;
private $SSLKEY_PATH;
//所有参数
private $params = array();
public function __construct($appid, $mch_id, $notify_url, $key)
{
$this->appid = $appid;
$this->mch_id = $mch_id;
$this->notify_url = $notify_url;
$this->key = $key;
}
/**
*下单方法
* @param $params下单参数
*/
public function unifiedOrder( $params ){
$this->body = $params['body'];
$this->out_trade_no = $params['out_trade_no'];
$this->total_fee = $params['total_fee'];
$this->trade_type = $params['trade_type'];
$this->scene_info = $params['scene_info'];
$this->attach = $params['attach'];
$this->nonce_str = $this->genRandomString();
$this->spbill_create_ip = $_SERVER['REMOTE_ADDR'];
$this->params['appid'] = $this->appid;
$this->params['mch_id'] &#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。