失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 微信公众号php支付设置回调 php微信公众号支付讲解(JSAPI)

微信公众号php支付设置回调 php微信公众号支付讲解(JSAPI)

时间:2020-05-14 03:25:19

相关推荐

微信公众号php支付设置回调 php微信公众号支付讲解(JSAPI)

前面的文章中,我们介绍了多种支付方式,

那么在这篇文章中我们介绍一下微信公众号支付,

微信公众号支付文档地址(微信公众号支付)

微信完整支付类下载地址(不定期修改完善 Gitee 与 GitHub):

一、在微信公众号支付之前我们先要获取相关配置,及填写公众号授权目录

$config = array(

'appid' => '', // 微信支付appid(填写)

'xcxappid' => '', // 微信小程序appid

'mch_id' => '', // 微信支付 mch_id 商户收款账号(填写)

'key' => '', // 微信支付key(填写)

'appsecret' => '', // 公众帐号secert(公众号支付专用)(填写)

'notify_url' => '', // 接收支付状态的连接 改成自己的回调地址(填写)

'redirect_uri' => '', // 公众号支付时,没有code,获取openid使用(可填写)

);

公众号授权目录 设置指引:进入商户平台-->产品中心-->开发配置,进行配置和修改,如图所示。

配置完公众号授权目录后我们还需要登录微信公众平台,配置JS接口安全域名

二、如何使用对接支付

include './WeixinPay.php';

$get = $_GET;

$order_sn = isset($get['order_sn']) ? $get['order_sn'] : time().rand(1000,9999);

if (isset($get['state'])) { // 二次跳转时使用

$order_sn = $get['state'];

}

$config['redirect_uri'] = 'http://www.ceshi.test/pay.php/'; // 静默授权后的跳转地址

$weixinpay = new \feng\WeixinPay($config);

$order = array( // 如果是公众号中已授权的,可在订单信息中传入用户(openid)

'body' => '测试商品', // 产品描述

'total_fee' => '1', // 订单金额(分)

'out_trade_no' => $order_sn, // 订单编号

'product_id' => $order_sn, // 产品id(可用订单编号)

);

$data = $weixinpay->jsPay($order, $get['code']); // 二次传入时获取用户openid(当有openid时自动忽略)

if ($data) {

$data = json_encode($data);

} else {

die('调起支付失败');

}

?>

微信支付

function onBridgeReady(){

var data=<?php echo $data ?>;

var order_sn=<?php echo $order_sn ?>;

WeixinJSBridge.invoke(

'getBrandWCPayRequest', data, // 拼上获取到的信息

function(res){

if (res.err_msg == "get_brand_wcpay_request:ok" ) { // 支付成功

// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。

alert('支付成功');

} else {

alert('支付失败');

// alert(res.err_code+res.err_desc+res.err_msg); // 显示错误信息

}

window.location.href = 'http://www.ceshi.test/detail.html?id='+order_sn; // 无论成功失败跳转订单详情

}

);

}

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', onBridgeReady);

document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);

}

}else{

onBridgeReady();

}

三、支付回调

include './WeixinPay.php';

$weixinpay = new \feng\WeixinPay($config);

$re = $weixinpay->notify();

if ($re) {

// 以验证返回支付成功后的信息,可直接对订单进行操作,已通知微信支付成功

} else {

// 支付失败

}

如果觉得《微信公众号php支付设置回调 php微信公众号支付讲解(JSAPI)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。