h5 前端 PHP,十分钟搞定微信H5支付(ThinkPHP5.1)

十分钟搞定微信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'] &#

你可能感兴趣的:(h5,前端,PHP)