失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 微擎网站开发-公众号对接微信支付接口(JS-SDK / JSAPI)php-SDK

微擎网站开发-公众号对接微信支付接口(JS-SDK / JSAPI)php-SDK

时间:2021-01-30 17:00:24

相关推荐

微擎网站开发-公众号对接微信支付接口(JS-SDK / JSAPI)php-SDK

网上找到的公众号微信支付好多乱七八糟的内容,过时代码什么样的都有,虽然很乱但还是看了一遍(无奈)。

接下来是我的总结实践:

该篇为测试篇:并未配置对应的支付目录,所以会报当前页面的URL未注册,不影响测试。

先下载SDK压缩包然后解压,在商户后台找到相关内容配置好config目录下config.json里的api_key_live,api_key_test和rsa_private_key。

将SDK解压包中adapay_sdk_php_v1.4.4上传到网站根目录app目录下,再浅浅的改个简单名字,比如我直接改sdk。

在对接前端页面写相关js(可参考发起支付(JS));

前端预览:

前端请求方法1如下:

<div class='fui-list pay-btn wx2' ><div class='xxx'><img src="xxxx/微信照片.png" alt=""></div><div class='fui-list-inner'><div class="title">微信支付2</div><div class="xxx"><img src="小图标.png" alt="" style="样式">微信安全支付</div></div></div><script language='javascript'>$('.wx2').click(function(){$.getJSON("http://xxxxx网站?i=x&c=entry&m=xxx&do=xxx&r=相关php.xxx方法",{ordersn: "{$order['ordersn']}"相关传参}, function(res){if(res.status=='1') {//下面alert用来测试是否返回相关数据alert("timeStamp:"+res.data.timeStamp);WeixinJSBridge.invoke('getBrandWCPayRequest', {"appId": res.data.appId,"timeStamp": res.data.timeStamp,"nonceStr": res.data.nonceStr,"package": res.data.package,"signType": "RSA","paySign": res.data.paySign //微信签名},function(res) {if (res.err_msg == "get_brand_wcpay_request:ok") {// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 }else{alert('支付失败!');}});}else{alert("请求失败!");}});})</script>

前端请求方法2如下:

<div class='fui-list pay-btn wx2' ><div class='xxx'><img src="xxxx/微信照片.png" alt=""></div><div class='fui-list-inner'><div class="title">微信支付2</div><div class="xxx"><img src="小图标.png" alt="" style="样式">微信安全支付</div></div></div><script language='javascript'>$('.wx2').click(function(){$.ajax({type: 'GET',url: 'http://xxxxx网站?i=x&c=entry&m=xxx&do=xxx&r=相关php.xxx方法',dataType: "json",data: {order_sn: "{$order['ordersn']}"//传参给后台查表},success: function(res) {alert("timeStamp:"+res.data.timeStamp);WeixinJSBridge.invoke('getBrandWCPayRequest', {"appId": res.data.appId,"timeStamp": res.data.timeStamp,"nonceStr": res.data.nonceStr,"package":res.data.package,"signType": "RSA","paySign": res.data.paySign //微信签名},function(res) {if (res.err_msg == "get_brand_wcpay_request:ok") {// 使用以上方式判断前端返回,微信团队郑重提示://res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。}else{alert('支付失败!');}});},error: function (data, status, e) {console.log("网络异常,验证失败")}})}) </script>

后端可借鉴PHP SDK 使用文档

后端相关代码:

public function xxx(){global $_W;global $_GPC;$order = pdo_get('数据商品信息表', array('ordersn like' => $_GPC['ordersn']));//根据传参找相关内容$ordersn = 'DD'.date('YmdHis',time()).rand(111111,999999);//加载SDK需要的文件include_once "./sdk/AdapaySdk/init.php";//加载商户的配置文件include_once "./sdk/AdapayDemo/config.php";//初始化支付类$payment = new \AdaPaySdk\Payment();//支付设置$payment_params = array('app_id'=> '你的appid','order_no'=> $ordersn,//订单号'pay_channel'=> 'wx_pub',//支付方式'prod_mode' => true,'time_expire'=> date("YmdHis", time()+86400),'pay_amt'=> $order['price'],//价格'goods_title'=> 'xxxx'.$order['ordersn'],'goods_desc'=> 'xxxx'.$order['ordersn'],'description'=> 'description','notify_url'=>'你的回调地址','expend'=> ['open_id'=> $order['openid'],]);//发起支付$payment->create($payment_params);//对支付结果进行处理if ($payment->isError()){//失败处理var_dump($payment->result);} else {$resulr = $payment->result['expend']['pay_info'];$resulr = json_decode($resulr,true);echo json_encode(['status' => 1,'data' => $resulr]);}}

结果测试:

注:学习使我快乐,实习真棒!

如果觉得《微擎网站开发-公众号对接微信支付接口(JS-SDK / JSAPI)php-SDK》对你有帮助,请点赞、收藏,并留下你的观点哦!

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