支付

你在阅读本文之前确认你已经仔细阅读了:微信支付 | 商户平台开发文档

配置

配置在前面的例子中已经提到过了,支付的相关配置如下:

  1. use EasyWeChat\Factory;
  2. $config = [
  3. // 必要配置
  4. 'app_id' => 'xxxx',
  5. 'mch_id' => 'your-mch-id',
  6. 'key' => 'key-for-signature', // API 密钥
  7. // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
  8. 'cert_path' => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!
  9. 'key_path' => 'path/to/your/key', // XXX: 绝对路径!!!!
  10. 'notify_url' => '默认的订单回调地址', // 你也可以在下单时单独设置来想覆盖它
  11. ];
  12. $app = Factory::payment($config);

服务商

设置子商户信息

  1. $app->setSubMerchant('sub-merchant-id', 'sub-app-id'); // 子商户 AppID 为可选项

刷卡支付

官方文档

  1. $result = $app->pay([
  2. 'body' => 'image形象店-深圳腾大- QQ公仔',
  3. 'out_trade_no' => '1217752501201407033233368018',
  4. 'total_fee' => 888,
  5. 'auth_code' => '120061098828009406',
  6. ]);

授权码查询OPENID接口

  1. $app->authCodeToOpenid($authCode);

沙箱模式

微信支付沙箱环境,是提供给微信支付商户的开发者,用于模拟支付及回调通知。以验证商户是否理解回调通知、账单格式,以及是否对异常做了正确的处理。EasyWeChat SDK 对于这一功能进行了封装,开发者只需一步即可在沙箱模式和常规模式间切换,方便开发与最终的部署。

  1. // 在实例化的时候传入配置即可
  2. $app = Factory::payment([
  3. // ...
  4. 'sandbox' => true, // 设置为 false 或注释则关闭沙箱模式
  5. ]);
  6. // 判断当前是否为沙箱模式:
  7. bool $app->inSandbox();

特别注意,沙箱模式对于测试用例有严格要求,若使用的用例与规定不符,将导致测试失败。具体用例要求可关注公众号“微信支付商户接入验收助手”(WXPayAssist)查看。