pay-v3-order-jsapi.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | WeChatDeveloper
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2014~2023 ThinkAdmin [ thinkadmin.top ]
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: https://thinkadmin.top
  8. // +----------------------------------------------------------------------
  9. // | 开源协议 ( https://mit-license.org )
  10. // | 免责声明 ( https://thinkadmin.top/disclaimer )
  11. // +----------------------------------------------------------------------
  12. // | gitee 代码仓库:https://gitee.com/zoujingli/WeChatDeveloper
  13. // | github 代码仓库:https://github.com/zoujingli/WeChatDeveloper
  14. // +----------------------------------------------------------------------
  15. try {
  16. // 1. 手动加载入口文件
  17. include "../include.php";
  18. // 2. 准备公众号配置参数
  19. $config = include "./pay-v3-config.php";
  20. // 3. 创建接口实例
  21. $payment = \WePayV3\Order::instance($config);
  22. // 4. 组装支付参数
  23. $order = (string)time();
  24. $result = $payment->create('jsapi', [
  25. 'appid' => $config['appid'],
  26. 'mchid' => $config['mch_id'],
  27. 'description' => '商品描述',
  28. 'out_trade_no' => $order,
  29. 'notify_url' => 'https://thinkadmin.top',
  30. 'payer' => ['openid' => 'o38gps3vNdCqaggFfrBRCRikwlWY'],
  31. 'amount' => ['total' => 2, 'currency' => 'CNY'],
  32. ]);
  33. echo '<pre>';
  34. echo "\n--- 创建支付参数 ---\n";
  35. var_export($result);
  36. // array(
  37. // 'appId' => 'wx60a43dd8161666d4',
  38. // 'timeStamp' => '1669027650',
  39. // 'nonceStr' => 'dfscg4lm02uqy448kjd1kjs2eo26joom',
  40. // 'package' => 'prepay_id=wx211847302881094d83b1917194ca880000',
  41. // 'signType' => 'RSA',
  42. // 'paySign' => '1wvvi4vmcJmP3GXB0H52mxp8lOhyqE4BtLmyi3Flg8DVKCES4fsb6+0z/L9sYkbp/TNinsnK0k7mUpTe2Yo86P1DLg18fR7zsIn5u1+3tI58boHk3VsAJl4Uhlti9ME3T7kRq1bEb4DGxp16+ixRynOqndkIkYXxrREhsrZIQlsGMfNCV0K1707s7jBTgqIm1vlkpIjNEg8nbcuG88Vzly4dR1a9K6Fux+sm0gu2rMroRwIo2R/0rgHGDANmnAZj6YEfLZlRrGTbr9r0V1+HHQPvV4BJLvTG8KXVJmJSJzBWSgq31PwrLWdOwdtpNKk7wJbY7yoScYUysYqqzM4DTQ==',
  43. // );
  44. echo "\n\n--- 查询支付参数 ---\n";
  45. $result = $payment->query($order);
  46. var_export($result);
  47. // array(
  48. // 'amount' => array('payer_currency' => 'CNY', 'total' => 2),
  49. // 'appid' => 'wx60a43dd8161666d4',
  50. // 'mchid' => '1332187001',
  51. // 'out_trade_no' => '1669027802',
  52. // 'promotion_detail' => array(),
  53. // 'scene_info' => array('device_id' => ''),
  54. // 'trade_state' => 'NOTPAY',
  55. // 'trade_state_desc' => '订单未支付',
  56. // );
  57. // 创建退款
  58. $out_refund_no = strval(time());
  59. $result = $payment->createRefund([
  60. 'out_trade_no' => $order,
  61. 'out_refund_no' => $out_refund_no,
  62. 'amount' => [
  63. 'refund' => 2,
  64. 'total' => 2,
  65. 'currency' => 'CNY'
  66. ]
  67. ]);
  68. echo "\n--- 创建退款订单2 ---\n";
  69. var_export($result);
  70. $result = $payment->queryRefund($out_refund_no);
  71. echo "\n--- 查询退款订单2 ---\n";
  72. var_export($result);
  73. } catch (\Exception $exception) {
  74. // 出错啦,处理下吧
  75. echo $exception->getMessage() . PHP_EOL;
  76. }