{"id":20144172,"url":"https://github.com/quansitech/qs-pay","last_synced_at":"2025-04-09T18:53:46.859Z","repository":{"id":49505989,"uuid":"224828771","full_name":"quansitech/qs-pay","owner":"quansitech","description":"银联、支付宝、微信集成扩展包","archived":false,"fork":false,"pushed_at":"2021-06-16T09:42:47.000Z","size":159,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-23T20:51:18.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quansitech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-29T10:10:13.000Z","updated_at":"2022-01-03T07:48:42.000Z","dependencies_parsed_at":"2022-09-09T09:10:09.513Z","dependency_job_id":null,"html_url":"https://github.com/quansitech/qs-pay","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqs-pay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqs-pay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqs-pay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quansitech%2Fqs-pay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quansitech","download_url":"https://codeload.github.com/quansitech/qs-pay/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248093693,"owners_count":21046728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T22:09:03.916Z","updated_at":"2025-04-09T18:53:46.841Z","avatar_url":"https://github.com/quansitech.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qspay\n\n![lincense](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)\n![Pull request welcome](https://img.shields.io/badge/pr-welcome-green.svg?style=flat-square)\n\n## 介绍\n银联、微信、支付宝的H5支付场景的接口封装开发包。简化各种不同支付场景的接入和学习成本，统一化接入流程。\n\n## 安装\n\n```php\ncomposer require tiderjian/qs-pay\n```\n\n### 微信支付\n\n#### PC\n```php\n$config = [\n    'app_id'             =\u003e **************,\n    'mch_id'             =\u003e **************,\n    'key'                =\u003e **************,\n    'cert_path'          =\u003e ***************,\n    'key_path'           =\u003e ***************,\n    'notify_url'         =\u003e *************\n];\n\n$pay = Qspay::instance('wepay', $config);\n\n$result = $pay-\u003epay([\n    'body' =\u003e '测试',\n    'out_trade_no' =\u003e time(),\n    'total_fee' =\u003e 1\n]);\n\n//PC端的场景返回的$result 是一个wx扫码的地址，可将其转成二维码，放在网页让用户打开微信扫码\n```\n\n#### 微信端\n```php\n$config = [\n    'app_id'             =\u003e **************,\n    'mch_id'             =\u003e **************,\n    'key'                =\u003e **************,\n    'cert_path'          =\u003e ***************,\n    'key_path'           =\u003e ***************,\n    'notify_url'         =\u003e *************\n];\n\n$pay = Qspay::instance('wepay', $config);\n\n$result = $pay-\u003epay([\n    'body' =\u003e '测试',\n    'out_trade_no' =\u003e time(),\n    'total_fee' =\u003e 1,\n    'openid' =\u003e session('test_openid')\n]);\n\n******************************\nJS调用代码  ，将上面返回的$result传递给js使用\n\n\u003cscript type=\"text/javascript\" charset=\"utf-8\"\u003e\n    function onBridgeReady(){\n        WeixinJSBridge.invoke(\n            'getBrandWCPayRequest', {$result},\n            function(res){\n                if(res.err_msg == \"get_brand_wcpay_request:ok\" ){\n                    alert('支付成功');\n                    window.location = '/home/index/wxpaysuccess';\n                }\n                else{\n                    alert('支付失败');\n                }\n            });\n    }\n    if (typeof WeixinJSBridge == \"undefined\"){\n        if( document.addEventListener ){\n            document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);\n        }else if (document.attachEvent){\n            document.attachEvent('WeixinJSBridgeReady', onBridgeReady);\n            document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);\n        }\n    }else{\n        onBridgeReady();\n    }\n\n\u003c/script\u003e\n//\n```\n\n#### notify\n```php\n$config = [\n    'app_id'             =\u003e **************,\n    'mch_id'             =\u003e **************,\n    'key'                =\u003e **************,\n    'cert_path'          =\u003e ***************,\n    'key_path'           =\u003e ***************\n];\n\n$pay = Qspay::instance('wepay', $config);\n$pay-\u003enotifyHandle(function($notify_param){\n    //处理业务逻辑\n    //返回 true 表示处理成功\n    //返回 错误字符串表示处理失败\n});\n```\n\n### 支付宝\n\n\n#### 新版接口 PC AND WAP\n程序自动判断PC和WAP的使用场景\n````php\n$config = [\n    'interface_type' =\u003e Qspay\\Alipay::ALIPAY_INTERFACE_TYPE_DONATE_NEW,\n    // 沙箱模式\n    'debug'       =\u003e false,\n    // 应用ID\n    'appid'       =\u003e ***************,\n    // 支付宝公钥(1行填写)\n    'public_key'  =\u003e ***************,\n    // 应用私钥(1行填写)\n    'private_key' =\u003e ********************,\n    // 支付成功通知地址\n    'notify_url'  =\u003e ***************,\n    // 支付成功后返回的地址\n    'return_url' =\u003e **********\n];\n\n$pay = Qspay::instance('alipay', $config);\n\necho $pay-\u003epay([\n    'out_trade_no' =\u003e time(), // 商户订单号\n    'total_amount' =\u003e '0.01',    // 支付金额\n    'subject'      =\u003e '支付订单描述', // 支付订单描述\n]);\n````\n\n#### 新版接口 notify\n```php\n$config = [\n    'interface_type' =\u003e Qspay\\Alipay::ALIPAY_INTERFACE_TYPE_DONATE_NEW,\n    // 沙箱模式\n    'debug'       =\u003e false,\n    // 应用ID\n    'appid'       =\u003e ***************,\n    // 支付宝公钥(1行填写)\n    'public_key'  =\u003e ***************,\n    // 应用私钥(1行填写)\n    'private_key' =\u003e ********************,\n    // 支付成功通知地址\n    'notify_url'  =\u003e ***************\n];\n\n$pay = Qspay::instance('alipay', $config);\n$pay-\u003enotifyHandle(function($notify_param){\n    //处理业务逻辑\n    //返回 true 表示处理成功\n    //返回 错误字符串表示处理失败\n});\n```\n\n#### 旧版接口 PC AND WAP\n```php\n$config = [\n    'interface_type' =\u003e Qspay\\Alipay::ALIPAY_INTERFACE_TYPE_DONATEV3,\n    //合作伙伴身份(PID)\n    'partner' =\u003e ***************,\n    //MD5密钥\n    'key'  =\u003e *************,\n    // 支付宝登录邮箱\n    'seller_email' =\u003e ********************,\n    //采用传输协议 http or https\n    'transport' =\u003e ****,\n    // 支付成功回调通知地址\n    'notify_url'  =\u003e ***************,\n    // 支付成功返回地址\n    'return_url' =\u003e **************\n];\n\n$pay = Qspay::instance('alipay', $config);\n\necho $pay-\u003epay([\n    'out_trade_no' =\u003e time(), // 商户订单号\n    'total_amount' =\u003e '0.01',    // 支付金额\n    'subject'      =\u003e '支付订单描述', // 支付订单描述\n    'body' =\u003e '订单详情', //支付订单详情\n]);\n```\n\n#### 旧版接口 notify\n```php\n$config = [\n    'interface_type' =\u003e Qspay\\Alipay::ALIPAY_INTERFACE_TYPE_DONATEV3,\n    //合作伙伴身份(PID)\n    'partner' =\u003e ***************,\n    //MD5密钥\n    'key'  =\u003e *************,\n    // 支付宝登录邮箱\n    'seller_email' =\u003e ********************,\n    //采用传输协议 http or https\n    'transport' =\u003e ****,\n    // 支付成功回调通知地址\n    'notify_url'  =\u003e ***************,\n    // 支付成功返回地址\n    'return_url' =\u003e **************\n];\n\n$pay = Qspay::instance('alipay', $config);\n$pay-\u003enotifyHandle(function($notify_param){\n    //处理业务逻辑\n    //返回 true 表示处理成功\n    //返回 错误字符串表示处理失败\n});\n```\n\n\n### 银联\n\n#### PC AND WAP\n```php\n$config = [\n    'merId' =\u003e ***********,\n    'notifyUrl' =\u003e ****************, //后台通知\n    'signCertPath' =\u003e ***************, //签名证书\n    'signCertPwd' =\u003e **********,  //签名密码\n];\n\n$qspay = Qspay::instance('unionpay', $config);\n\n$order = [];\n$order['out_trade_no'] = date('YmdHis');\n$order['amount'] = 1;\n$order['returnUrl'] = ******; //支付成功返回地址\n\necho  $qspay-\u003epay($order);\n```\n\n#### notify\n```php\n $config = [\n    'merId' =\u003e '826440159420001',\n    'signCertPath' =\u003e ***************, //签名证书\n    'signCertPwd' =\u003e **********,  //签名密码\n    'verifyRootCertPath' =\u003e *************, //root证书\n    'verifyMiddleCertPath' =\u003e *************** //middle证书\n];\n\n$qspay = Qspay::instance('unionpay', $config);\n\n$qspay-\u003enotifyHandle(function($post_data){\n    //处理业务逻辑\n    //返回 true 表示处理成功\n    //返回 错误字符串表示处理失败\n});\n```\n\n## 设置订单超时时间\n\n#### 支付宝(旧版)\n在pay方法参数中加入it_b_pay参数，具体参数设置请查看[支付宝API文档](https://opendocs.alipay.com/open/62/104743)\n```php\n$pay-\u003epay([\n    'out_trade_no' =\u003e time(), // 商户订单号\n    'total_amount' =\u003e '0.01',    // 支付金额\n    'subject'      =\u003e '支付订单描述', // 支付订单描述\n    'return_url' =\u003e '**********',\n    'it_b_pay'   =\u003e '10m',\n]);\n```\n\n#### 支付宝(新版)\n在pay方法参数中加入time_expire参数，具体参数设置请查看[支付宝API文档](https://opendocs.alipay.com/apis/api_1/alipay.trade.wap.pay)\n```php\n$pay-\u003epay([\n    'out_trade_no' =\u003e time(), // 商户订单号\n    'total_amount' =\u003e '0.01',    // 支付金额\n    'subject'      =\u003e '支付订单描述', // 支付订单描述\n    'return_url' =\u003e '**********',\n    'time_expire'   =\u003e '2016-12-31 10:05',\n]);\n```\n\n#### 微信\n在pay方法参数中加入time_expire参数，具体参数设置请查看[微信API文档](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)\n```php\n$pay-\u003epay([\n    'body' =\u003e '测试',\n    'out_trade_no' =\u003e time(),\n    'total_fee' =\u003e 1,\n    'openid' =\u003e session('test_openid'),\n    'time_expire' =\u003e '20091227091010',\n]);\n```\n\n## lincense\n[MIT License](https://github.com/tiderjian/lara-for-tp/blob/master/LICENSE.MIT) \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqs-pay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquansitech%2Fqs-pay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquansitech%2Fqs-pay/lists"}