扫码支付、H5、JSAPI、查询订单、退款订单、异步通知校验
class indexController extends Mb{
public $wx_appid='';//微信公众号ID
public $wx_mchid='';//微信支付商户ID
public $wx_key='';//微信支付KEY
public $wx_appsecret='';//微信公众号appsecret
public function index(){//扫码支付
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$outTradeNo = date("YmdHis",time()).rand(1000,9999);//生成订单号
//echo $outTradeNo;
$orderName = '一瓶矿泉水';
$payAmount = 2;//支付金额
$notifyUrl = 'https://www.liot.cn/index/notify';
$res = $pay->qrcodePay($outTradeNo,$orderName,$payAmount,$notifyUrl);
p($res);
}
public function jsApiPay(){//JSAPI支付
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$openid = $pay->GetOpenid($this->wx_appsecret); //获取openid
if(!$openid) exit('获取openid失败');
$outTradeNo = date("YmdHis",time()).rand(1000,9999);//生成订单号
$orderName = '一瓶矿泉水';
$payAmount = 2;//支付金额
$notifyUrl = 'https://www.liot.cn/index/notify';//用户支付成功后异步通知地址
$res = $pay->jsApiPay($openid,$outTradeNo, $orderName, $payAmount, $notifyUrl);
$this->jsApiParameters = json_encode($res);
p($this->jsApiParameters);
}
public function h5Pay(){//H5支付
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$outTradeNo = date("YmdHis",time()).rand(1000,9999);//生成订单号
$orderName = '一瓶矿泉水';
$payAmount = 2;//支付金额
$notifyUrl = 'https://www.liot.cn/index/notify';//用户支付成功后异步通知地址
$returnUrl = 'https://www.liot.cn';//用户支付成功后跳转的地址
$res = $pay->h5Pay($outTradeNo,$orderName,$payAmount,$notifyUrl,$returnUrl);
if($res['code'] == 200){
$mwebUrl = $res['url'];
header('location:/'.$res['url']);
}
p($res);
}
public function notify(){//异步通知
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$result = $pay->notify();
if($result){
//完成你的逻辑
//例如连接数据库,获取付款金额$result['cash_fee'],获取订单号$result['out_trade_no'],修改数据库中的订单状态等;
//现金支付金额:$result['cash_fee']
//订单金额:$result['total_fee']
//商户订单号:$result['out_trade_no']
//付款银行:$result['bank_type']
//货币种类:$result['fee_type']
//是否关注公众账号:$result['is_subscribe']
//用户标识:$result['openid']
//业务结果:$result['result_code'] SUCCESS/FAIL
//支付完成时间:$result['time_end'] 格式为yyyyMMddHHmmss
//具体详细请看微信文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7&index=8
exit('SUCCESS');
}
exit('FAIL');
}
public function Query(){//查询支付结果
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$res = $pay->PayQuery('202212240114178865');
p($res);
}
public function Refund(){//订单退款
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key)->setCert(Z_E.'cert/apiclient_cert.pem',Z_E.'cert/apiclient_key.pem');
$outTradeNo = 'T'.date("YmdHis",time()).rand(1000,9999);//生成订单号
$res = $pay->PayRefund($outTradeNo,2,2,'202212240255477043');
p($res);
}
public function PayClose(){//关闭订单
$pay = t('Wxpay',$this->wx_mchid, $this->wx_appid, $this->wx_key);
$res = $pay->PayClose('202212240222357733');
p($res);
}
}
可以赞助并支持下作者哦,谢谢!