微信PHP支付接口Demo下载https://pay.weixin.qq.com/wik...官方文档参考https://pay.weixin.qq.com/wik...1.配置公众号信息。我们先测试,所以先添加测试授权目录和测试白名单。测试授权目录就是你要发起微信请求的文件所在的目录,比如jsapi发起请求时,jsapi.php所在的目录一般是测试目录,测试白名单就是开发者微信号。官方的支付授权目录不能和测试的一样,否则会报错。如果不填或者填错授权目录测试白名单,都会报错。错误报告示例:NaNsystem:access_denied2。配置lib/WxPay.Config.php文件配置如下四项:constAPPID='';constMCHID='';常量键='';常量APPSECRET='';APPID和APPSECRET可以在微信后台找到。MCHID可以在申请微信支付后发的邮件中找到,KEY可以根据邮件提示找到3.我们首先要访问官方demo是JSAPI支付。但是看看代码index.php底部的链接。它默认为演示链接,只需将其更改为我们的自定义链接即可。当然你也可以直接写成自己的访问链接。
">JSAPI支付">刷卡支付">扫码支付">订单查询">预订单退款">退款查询">下载顺序
官方给的demo整个思路很清晰,如果你想设计成API接口,可以参考我个人的api开发思路:介绍:这三个文件需要__DIR__.'/wechat_pay/example/WxPay.JsApiPay.php';require__DIR__.'/wechat_pay/example/log.php';/lib/WxPay.Api.php';api接口设置://请求支付参数case10098:$openid=isset($_REQUEST['openid'])?$_REQUEST['openid']:error();$SetTotal_fee=isset($_REQUEST['SetTotal_fee'])?$_REQUEST['SetTotal_fee']:error();wx_pay($openid,$SetTotal_fee);break;这里SetTotal_fee是支付金额openid是关键//发起支付Function函数wx_pay($openid,$SetTotal_fee){//初始化日志$logHandler=newCLogFileHandler("../logs/".date('Y-m-d').'.log');$log=日志::初始化($logHandler,15);//①,获取用户openid$tools=newJsApiPay();$openId=$openid;//②,统一顺序$input=newWxPayUnifiedOrder();$input->SetBody("在这里写产品名称");$input->SetAttach("test");$input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));$input->SetTotal_fee($SetTotal_fee*100);$input->SetTime_start(date("YmdHis"));$input->SetTime_expire(date("YmdHis",time()+600));$input->SetGoods_tag("test");$input->SetNotify_url("xxxx/jsapi.php");//这里写支付发起页面$input->SetTrade_type("JSAPI");$input->SetOpenid($openId);$order=WxPayApi::unifiedOrder($input);$jsApiParameters=$tools->GetJsApiParameters($order);echo$jsApiParameters;}前端调用:functionjsApiCall(){WeixinJSBridge.invoke('getBrandWCPayRequest',,function(res){WeixinJSBridge.log(res.err_msg);//存储异常alert(res.err_code+res.err_desc+res.err_msg);//后面可以写执行失败});}functioncallpay(){if(typeofWeixinJSBridge=="undefined"){if(document.addEventListener){文档ent.addEventListener('WeixinJSBridgeReady',jsApiCall,false);}elseif(document.attachEvent){document.attachEvent('WeixinJSBridgeReady',jsApiCall);document.attachEvent('onWeixinJSBridgeReady',jsApiCall);}}else{jsApiCall();}}如果这篇文章对你有用,可以点赞或者收藏,这是对作者的鼓励~附上小弟的网址。.www.entercode.cn推广一波...