Index.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace app\admin\controller;
  3. use payment\wechat\WechatTransfers;
  4. use WeChatPay\Builder;
  5. use WeChatPay\Crypto\Rsa;
  6. use WeChatPay\Transformer;
  7. use WeChatPay\Util\PemUtil;
  8. class Index
  9. {
  10. public function index()
  11. {
  12. return redirect('/admin.php/home');
  13. }
  14. public function t1()
  15. {
  16. // 商户号
  17. $merchantId = config('wxconfig.payMchId');
  18. // 从本地文件中加载「商户API私钥」,「商户API私钥」会用来生成请求的签名
  19. $merchantPrivateKeyFilePath = file_get_contents(root_path('extend/payment/cert') . 'apiclient_key.pem');
  20. $merchantPrivateKeyInstance = Rsa::from($merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
  21. // 「商户API证书」的「证书序列号」
  22. $merchantCertificateSerial = config('wxconfig.serial');
  23. // 从本地文件中加载「微信支付平台证书」,用来验证微信支付应答的签名
  24. $platformCertificateFilePath = file_get_contents(root_path('extend/payment/cert') . 'cert.pem');
  25. $platformPublicKeyInstance = Rsa::from($platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);
  26. // 从「微信支付平台证书」中获取「证书序列号」
  27. $platformCertificateSerial = PemUtil::parseCertificateSerialNo($platformCertificateFilePath);
  28. // 构造一个 APIv3 客户端实例
  29. $instance = Builder::factory([
  30. 'mchid' => $merchantId,
  31. 'serial' => $merchantCertificateSerial,
  32. 'privateKey' => $merchantPrivateKeyInstance,
  33. 'certs' => [
  34. $platformCertificateSerial => $platformPublicKeyInstance,
  35. ],
  36. ]);
  37. // 发送请求
  38. $resp = $instance->chain('v3/certificates')->get(
  39. ['debug' => true] // 调试模式,https://docs.guzzlephp.org/en/stable/request-options.html#debug
  40. );
  41. halt($resp->getBody());
  42. }
  43. public function t2()
  44. {
  45. halt(getUniId());
  46. $server = new WechatTransfers(config('wxconfig.appId'),config('wxconfig.payMchId'),config('wxconfig.appSecret'),$_SERVER['SERVER_ADDR']);
  47. $res = $server->sendMoney(1,'o4a9g5cDIEVzS7zVzE-_VEK8y9Yg');
  48. }
  49. }