项目背景
不是什么大项目,使用微信服务商来管理多个子商户,并使用服务商的接口替子商户下单,服务商后台才能接收到回调
使用场景是web扫码支付
准备
域名应该要在服务商所归属的公众号内“网页授权域名”设置好(不知此操作是否需要?)
在支付服务商后台设置好回调地址(子商户应该是不用设置)
项目使用apache+php为后台服务,下载官方支付php demo(native)
我们直接先按照demo的目录结构来玩,直接把解压的example和lib,2个目录都到服务器根目录
在example目录下,创建cert目录,进服务商后台-账户中心-api安全,下载证书,放到这个目录内
在example目录下,创建logs目录,用于微信支付log类写日志文件
由于微信支付相关都要使用https,所以查看访问日志在apache目录下的logs目录,ssl_request.txt文件,最下面,可以看到回调地址是否被请求
注意
官方demo有2个方式的扫码支付,第一种方式已经不提供,都使用第二种
官方的demo,会有不能显示二维码的bug,例子页面是native.php
打印print_r($result); 这个,会显示错误,主要是关于于curl的错误,自行百度解决
配置
- 在WxPay.Config.Interface.php中的接口对象中增加一个公共方法
public abstract function GetSubMchId(); //获取子商户id
- 在WxPay.Config.php内中,配置需要的参数,自行百度,并且增加一个方法
public function GetSubMchId(){ return '8888888888'; //返回子商户号 by vbyzc }
- 在lib/WxPay.Api.php 内,在统一下单方法unifiedOrder中,下面的参数那段位置,增加
$inputObj->SetSub_mch_id($config->GetSubMchId());//子商户号 by vbyzc
- 在各个需要查询订单的的地方回调,付款页面实时检测订单支付状态的请求页面,都要使用此方法来设置子商户id:
$input->SetSub_mch_id($config->GetSubMchId());$config = new WxPayConfig();
部分代码
扫码页面:native.php