{"id":44402392,"url":"https://github.com/pudongping/global-pay","last_synced_at":"2026-02-12T06:28:24.933Z","repository":{"id":57045748,"uuid":"410508123","full_name":"pudongping/global-pay","owner":"pudongping","description":"简单易用的境外支付 php composer 插件包，有完善的中文文档。","archived":false,"fork":false,"pushed_at":"2023-08-31T11:01:31.000Z","size":70,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-07T21:01:38.460Z","etag":null,"topics":["alipay","global-payments","pay","payment","php","php-library"],"latest_commit_sha":null,"homepage":"https://pudongping.github.io/global-pay-doc","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/pudongping.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":"2021-09-26T09:30:07.000Z","updated_at":"2024-08-30T13:27:12.000Z","dependencies_parsed_at":"2022-08-24T04:50:39.135Z","dependency_job_id":null,"html_url":"https://github.com/pudongping/global-pay","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/pudongping/global-pay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pudongping%2Fglobal-pay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pudongping%2Fglobal-pay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pudongping%2Fglobal-pay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pudongping%2Fglobal-pay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pudongping","download_url":"https://codeload.github.com/pudongping/global-pay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pudongping%2Fglobal-pay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29360644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T01:03:07.613Z","status":"online","status_checked_at":"2026-02-12T02:00:06.911Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["alipay","global-payments","pay","payment","php","php-library"],"created_at":"2026-02-12T06:28:24.205Z","updated_at":"2026-02-12T06:28:24.927Z","avatar_url":"https://github.com/pudongping.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch1 align=\"center\"\u003eGlobalPay\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\n[![Latest Stable Version](https://poser.pugx.org/pudongping/global-pay/v/stable.svg)](https://packagist.org/packages/pudongping/global-pay) \n[![Total Downloads](https://poser.pugx.org/pudongping/global-pay/downloads.svg)](https://packagist.org/packages/pudongping/global-pay)\n[![Latest Unstable Version](https://poser.pugx.org/pudongping/global-pay/v/unstable.svg)](https://packagist.org/packages/pudongping/global-pay)\n[![Minimum PHP Version](http://img.shields.io/badge/php-%3E%3D%207.1.3-8892BF.svg)](https://php.net/)\n[![Packagist](https://img.shields.io/packagist/v/pudongping/global-pay.svg)](https://github.com/pudongping/global-pay)\n[![License](https://poser.pugx.org/pudongping/global-pay/license)](https://packagist.org/packages/pudongping/global-pay)\n\n\u003c/p\u003e\n\n支持国际版支付的 PHP SDK，目前**只支持支付宝国际版**。因目前支付宝跨境在线支付服务只支持 app、wap、web 和报关这四种，本 SDK 提供了 app、wap、web 这三种跨境支付，[详见支付宝国际支付官方文档](https://global.alipay.com/docs/ac/legacy/legacydoc) 。\n\n\u003e 创建本仓库的初衷主要在于，本人目前所在单位有跨境支付的需求，之前境内支付一直采用 [yansongda/pay](https://github.com/yansongda/pay) 扩展包，也习惯了这种调用方式，但由于贵包暂时不支持境外支付，因此只能撸起袖子自己写一个了。\n\u003e 本只想此扩展包供团队内部使用，但近期刚好也有朋友问我境外支付采用的什么扩展包，遂想着将此包开源出去，以供各位同学参考！如果发现此包有 bug，欢迎随时提 PR，希望各位同学使用愉快！  \n\u003e 本扩展包里面的功能只打算以本人所在单位的需求为导向进行扩展，因此暂时只考虑跨境支付宝支付，其他暂且不考虑。\n\n## 安装\n\n```shell\ncomposer require pudongping/global-pay -vvv\n```\n\n## 详细文档地址\n\n[https://pudongping.github.io/global-pay-doc](https://pudongping.github.io/global-pay-doc)\n\n## 特点\n\n- 命名规范\n- 隐藏开发者不需要关注的细枝末节\n- 符合 PSR 规范，可以方便的与各种 PHP 框架集成\n- 使用方式简单，使用过 [yansongda/pay](https://github.com/yansongda/pay) 扩展包的用户可无缝上手\n\n## 运行环境\n\n- PHP \u003e= 7.1.3\n- Composer\n\n## 支持的支付方法\n\n- 境外支付宝电脑支付\n- 境外支付宝手机网站支付\n- 境外支付宝 APP 支付\n\n方法 | 描述\n:---: | :---:\nweb | 电脑支付\nwap | 手机网站支付\napp | APP 支付\n\n## 所有支付方法都支持的方法\n\n- find(array|string $order)  \n**说明：** 查找订单接口  \n**参数：** `$order` 为 `string` 类型时，请传入系统订单号，对应跨境支付宝中的 `out_trade_no` 参数； `array` 类型时，参数请参考[支付宝境外订单单笔查询文档](https://global.alipay.com/docs/ac/global/single_trade_query_cn) 。    \n**返回：** 查询成功，返回 `Illuminate\\Support\\Collection` 实例，可以通过 `$collection-\u003etoArray()` 或者 `$collection-\u003eall()` 或者 `$collection-\u003eget('field')` 访问服务器返回的数据。  \n\n- refund(array $order)   \n**说明：** 退款接口  \n**参数：**  `$order` 数组格式，退款参数请参考[支付宝境外退款接口文档](https://global.alipay.com/docs/ac/global/forex_refund_cn) 。   \n**返回：** 退款成功，返回 `Illuminate\\Support\\Collection` 实例，可以通过 `$collection-\u003etoArray()` 或者 `$collection-\u003eall()` 或者 `$collection-\u003eget('field')` 访问服务器返回的数据。  \n  \n- verify()  \n**说明：** 验证服务器返回数据是否合法  \n**返回：** 验证成功，返回 `Illuminate\\Support\\Collection` 实例，可以通过 `$collection-\u003etoArray()` 或者 `$collection-\u003eall()` 或者 `$collection-\u003eget('field')` 访问服务器返回的数据。  \n  \n## 其他通用方法  \n\n- getExchangeRate()  \n**说明：** 获取汇率。详见[支付宝境外汇率查询接口](https://global.alipay.com/docs/ac/global/forex_rate_file_cn) 。  \n**返回：** 获取成功，返回 `Illuminate\\Support\\Collection` 实例，可以通过 `$collection-\u003etoArray()` 或者 `$collection-\u003eall()` 或者 `$collection-\u003eget('field')` 访问服务器返回的数据。  \n**注意：** 1、货币间的汇率会在北京时间每日 9：00 到 11:00 间变动一次；  2、汇率每日获取上限为 100 次。 （可能需要考虑通过缓存保存汇率，防止接口出现异常，因为本 SDK 没有做缓存处理）\n  \n- getHbFqCost(float $totalAmount, bool $isShowAll = false, bool $isSellerPercent = false)  \n**说明：** 获取花呗分期计费情况  \n**参数：** `$totalAmount` 为分期的本金，`$isShowAll` 为是否显示每一期的还款数，`$isSellerPercent` 为 `true` 表示商家承担全部手续费，为 `false` 表示用户承担全部手续费。  \n**返回：** 获取成功，返回 `Illuminate\\Support\\Collection` 实例，可以通过 `$collection-\u003etoArray()` 或者 `$collection-\u003eall()` 或者 `$collection-\u003eget('field')` 访问服务器返回的数据。\n\n返回参数说明\n\n参数 | 含义\n--- | :---:\nnper | 期数\ntotal_amount | 本金\ntotal_charge | 总手续费\nrate | 利率\nper_charge | 每期手续费\nper_amount | 每期本金\nper_total_amount | 每期总费用\nrefund_list | 还款列表\nrefund_list.nper | 第几期\nrefund_list.charge | 当前期数所需要支付的手续费\nrefund_list.amount | 当前期数所需要支付的本金数\nrefund_list.current_total_amount | 当前期数所需要支付的总费用\n\n## 使用说明\n\n### 非花呗分期支付\n\n```php\n\n\u003c?php\n\ndeclare(strict_types=1);\n\nnamespace App\\Controller;\n\nuse Pudongping\\GlobalPay\\GlobalPay;\nuse Pudongping\\GlobalPay\\Log;\n\nclass PayController\n{\n\n    protected $config = [\n        'partner' =\u003e '2088000000000000',  // 合作身份者 id，以 2088 开头的 16 位纯数字\n        'notify_url' =\u003e 'http://a90b-8-37-43-168.demo.io/index/notify_url',  // 异步回调地址\n        'return_url' =\u003e 'http://a90b-8-37-43-168.demo.io/index/return_url',  // 同步回调地址\n        'refer_url' =\u003e 'https://www.demo.net',  // 二级商户网站地址\n        'seller_email' =\u003e 'xxxx@gmail.com',  // 签约支付宝账号或卖家支付宝帐户\n        'key' =\u003e 'xxxx',  // 安全检验码，以数字和字母组成的 32 位字符\n        'sign_type' =\u003e 'RSA',  // 不需要修改\n        'input_charset' =\u003e 'UTF-8',  // 商户网站使用的编码格式，建议不需要修改\n        'transport' =\u003e 'http',  // 访问模式,根据自己的服务器是否支持 ssl 访问，若支持请选择 https；若不支持请选择 http\n        'split_fund' =\u003e '2088000000000000:0.10',  // 接受分账资金的支付宝账户 ID 和比例，用逗号分隔其他帐号信息。ID 是以 2088 开头的纯 16 位数字。\n        'private_key' =\u003e '/Users/pudongping/glory/key/alipay_private_key.pem',  // 私钥路径\n        'public_key' =\u003e '/Users/pudongping/glory/key/alipay_public_key.pem',  // 公钥路径\n\n        'log' =\u003e [ // optional\n            'file' =\u003e 'alipay.log',  // 当前目录下\n            'level' =\u003e 'debug', // 建议生产环境等级调整为 info，开发环境为 debug\n            'type' =\u003e 'single', // optional, 可选 daily.\n            'max_file' =\u003e 30, // optional, 当 type 为 daily 时有效，默认 30 天\n        ],\n        'http' =\u003e [ // optional\n            'timeout' =\u003e 5.0,\n            'connect_timeout' =\u003e 5.0,\n            // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html)\n        ],\n        'mode' =\u003e 'dev', // optional,设置此参数，将进入沙箱模式\n    ];\n\n    /**\n     * document link: https://global.alipay.com/docs/ac/web_cn/about\n     *\n     * @return mixed\n     */\n    public function web()\n    {\n        $order = [\n            'out_trade_no' =\u003e time(),\n            'subject' =\u003e '交易 alex ',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e '0.20',\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '変身ベ...^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n            // '_only_args' =\u003e true  // 只需要返回参数模式时增加\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003eweb($order);\n\n        return $globalPay-\u003esend();\n\n        // 如果设置了 `_only_args` 为 true，则使用以下方法获取所有的参数\n        // var_dump($globalPay-\u003egetContent());\n\n    }\n\n    /**\n     * document link:  https://global.alipay.com/docs/ac/wap_cn/start\n     *\n     * @return mixed\n     */\n    public function wap()\n    {\n\n        $order = [\n            'out_trade_no' =\u003e time(),\n            'subject' =\u003e '交易 alex ',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e '0.10',\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '変身ベ...^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n            // '_only_args' =\u003e true  // 只需要返回参数模式时增加\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003ewap($order);\n\n        return $globalPay-\u003esend();\n\n        // 如果设置了 `_only_args` 为 true，则使用以下方法获取所有的参数\n        // var_dump($globalPay-\u003egetContent());\n\n    }\n\n    /**\n     * document link: https://global.alipay.com/docs/ac/app_cn/about\n     */\n    public function app()\n    {\n        $order = [\n            'out_trade_no' =\u003e 'alex_' . time(),\n            'subject' =\u003e '交易 5200',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e '1.01',\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '大海にて^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003eapp($order);\n\n        $content = $globalPay-\u003egetContent();\n\n        var_dump($content);\n\n    }\n\n    /**\n     * 单笔查询接口 document link: https://global.alipay.com/docs/ac/global/single_trade_query_cn\n     */\n    public function find()\n    {\n        // out_trade_no 和 trade_no 参数可以同时含有，也可以二选一\n        $order = [\n            'out_trade_no' =\u003e 'alex_1629950066',\n            // 'trade_no' =\u003e '2021082622001364941434754996',\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003efind($order);\n\n        var_dump($globalPay-\u003etoArray());\n\n    }\n\n    /**\n     * 退款接口 document link： https://global.alipay.com/docs/ac/global/forex_refund_cn\n     */\n    public function refund()\n    {\n        $order = [\n            'out_return_no' =\u003e 'alex_refund_' . time(),\n            'out_trade_no' =\u003e 'alex_1629950066',\n            'return_rmb_amount' =\u003e '1.01',\n            'currency' =\u003e 'JPY',\n            'reason' =\u003e '退款测试',\n            // 'is_sync' =\u003e 'N',  // 如果 is_sync =\u003e N 则开启异步通知，否则不开启异步通知，不开启异步通知 notify_url 参数将会失效（不需要开启时，则不需要设置）\n            // 'notify_url' =\u003e 'http://api.demo.com:8016/v2/alipay/forexNotify',  // $order['notify_url'] 设置了，则使用 $order['notify_url'] 的值，否则使用配置文件中的 notify_url 参数\n            // 'type' =\u003e 'pc',  // 如果是网站支付，则需要设置 type 参数为 pc，手机浏览器或支付宝钱包支付时，不需要设置\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003erefund($order);\n\n        var_dump($globalPay-\u003etoArray());\n\n    }\n\n    /**\n     * 同步验签\n     */\n    public function return()\n    {\n        $data = GlobalPay::alipay($this-\u003econfig)-\u003everify();\n    }\n\n    /**\n     * 异步验签\n     *\n     * @return mixed\n     */\n    public function notify()\n    {\n        $globalPay = GlobalPay::alipay($this-\u003econfig);\n\n        try {\n\n            $data = $globalPay-\u003everify();  // 验签\n\n            // 建议必须对以下几个参数进行业务逻辑验证\n            $outTradeNo = $data-\u003eget('out_trade_no');  // 商户需要验证该通知数据中的 out_trade_no 是否为商户系统中创建的订单号。\n            $tradeStatus = $data-\u003eget('trade_status');  // 在支付宝的业务通知中，只有交易通知状态为 TRADE_FINISHED 时，支付宝才会认定为买家付款成功。\n            $totalFee = $data-\u003eget('total_fee');  // 该笔订单的总金额。请求时对应的参数，原样通知回来。（外币金额）\n\n            Log::debug('GlobalPay Notify ===\u003e ', $data-\u003eall());\n\n        } catch (\\Exception $exception) {\n            Log::error('异步通知异常 ===\u003e ' . $exception-\u003egetMessage());\n            return $globalPay-\u003efail()-\u003esend();  // 其他框架\n            // return $globalPay-\u003efail();  // Laravel 框架可以直接这样\n        }\n\n        return $globalPay-\u003esuccess()-\u003esend();  // 其他框架\n        // return $globalPay-\u003esuccess();  //  Laravel 框架可以直接这样\n    }\n\n    /**\n     * 获取汇率\n     */\n    public function getExchangeRate()\n    {\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003egetExchangeRate();\n\n        var_dump($globalPay-\u003etoArray());\n    }\n\n}\n\n```\n\n### 花呗分期支付\n\n```php\n\n\u003c?php\n\ndeclare(strict_types=1);\n\nnamespace App\\Controller;\n\nuse Pudongping\\GlobalPay\\GlobalPay;\nuse Pudongping\\GlobalPay\\Log;\n\nclass HbfqPayController\n{\n\n    public function web()\n    {\n        $order = [\n            'out_trade_no' =\u003e time(),\n            'subject' =\u003e '交易 alex',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e 5.45,\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '交易费用^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n            'hb_fq_param' =\u003e [\n                'num' =\u003e 3,  // 花呗分期分期数，只支持 3、6、12 期\n                // 只有 is_has_household 为 true， is_seller_percent 才能设置为 true\n                'is_has_household' =\u003e false,  // 是否拥有出资户，只有拥有出资户，商家才能贴息，否则只能用户贴息\n                'is_seller_percent' =\u003e false,  // 是否商家贴息\n                // 花呗分期开启订单传参贴息活动（不支持 PC 支付，无论是国际还是国内的交易都不支持）\n                // 因此相比 app 支付，不能传递 is_order_subsidy 参数\n            ],\n            // '_only_args' =\u003e true  // 只需要返回参数模式时增加\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003eweb($order);\n\n        return $globalPay-\u003esend();\n\n        // 如果设置了 `_only_args` 为 true，则使用以下方法获取所有的参数\n        // var_dump($globalPay-\u003egetContent());\n    }\n\n    public function wap()\n    {\n        $order = [\n            'out_trade_no' =\u003e time(),\n            'subject' =\u003e '交易 alex',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e 5.45,\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '交易费用^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n            'hb_fq_param' =\u003e [\n                'num' =\u003e 3,  // 花呗分期分期数，只支持 3、6、12 期\n                // 只有 is_has_household 为 true， is_seller_percent 才能设置为 true\n                'is_has_household' =\u003e false,  // 是否拥有出资户，只有拥有出资户，商家才能贴息，否则只能用户贴息\n                'is_seller_percent' =\u003e false,  // 是否商家贴息\n                // 花呗分期开启订单传参贴息活动（不支持 PC 支付，无论是国际还是国内的交易都不支持）\n                // 因此相比 app 支付，不能传递 is_order_subsidy 参数\n            ],\n            // '_only_args' =\u003e true  // 只需要返回参数模式时增加\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003ewap($order);\n\n        return $globalPay-\u003esend();\n\n        // 如果设置了 `_only_args` 为 true，则使用以下方法获取所有的参数\n        // var_dump($globalPay-\u003egetContent());\n    }\n\n    public function app()\n    {\n        $order = [\n            'out_trade_no' =\u003e time(),\n            'subject' =\u003e '交易 alex',\n            'currency' =\u003e 'JPY',\n            'rmb_fee' =\u003e 3.45,\n            'trade_information' =\u003e json_encode([\n                'business_type' =\u003e 4,\n                'goods_info' =\u003e '交易费用^1',\n                'total_quantity' =\u003e 1\n            ], 256),\n            'hb_fq_param' =\u003e [\n                'num' =\u003e 3,  // 花呗分期分期数，只支持 3、6、12 期\n                // 只有 is_has_household 为 true， is_seller_percent 才能设置为 true，否则 is_seller_percent 只能设置为 false\n                'is_has_household' =\u003e false,  // 是否拥有出资户，只有拥有出资户，商家才能贴息，否则只能用户贴息\n                'is_seller_percent' =\u003e false,  // 是否商家贴息， true 为商家贴息， false 为用户贴息\n                'is_order_subsidy' =\u003e false,  // 是否开启订单传参贴息活动\n                // 出资户贴息和订单传参贴息只能允许一个为 true\n            ],\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003eapp($order);\n\n        $content = $globalPay-\u003egetContent();\n\n        var_dump($content);\n    }\n\n    public function find()\n    {\n        // out_trade_no 和 trade_no 参数可以同时含有，也可以二选一\n        $order = [\n            'out_trade_no' =\u003e 'alex_1629950066',\n            // 'trade_no' =\u003e '2021082622001364941434754996',\n            'is_hbfq' =\u003e true,  // 该笔订单是否为花呗分期支付，订单查询出来的结果会含有 hb_fq_num 参数，不是花呗分期订单则没有这个参数\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003efind($order);\n\n        var_dump($globalPay-\u003etoArray());\n    }\n\n    public function refund()\n    {\n        // 花呗分期退款和非花呗分期退款操作流程一致\n        $order = [\n            'out_return_no' =\u003e 'alex_refund_' . time(),\n            'out_trade_no' =\u003e 'alex_1629950066',\n            'return_rmb_amount' =\u003e 3.45,\n            'currency' =\u003e 'JPY',\n            'reason' =\u003e '退款测试',\n            // 'is_sync' =\u003e 'N',  // 如果 is_sync =\u003e N 则开启异步通知，否则不开启异步通知，不开启异步通知 notify_url 参数将会失效（不需要开启时，则不需要设置）\n            // 'notify_url' =\u003e 'http://api.demo.com:8016/v2/alipay/forexNotify',  // $order['notify_url'] 设置了，则使用 $order['notify_url'] 的值，否则使用配置文件中的 notify_url 参数\n            // 'type' =\u003e 'pc',  // 如果是网站支付，则需要设置 type 参数为 pc，手机浏览器或支付宝钱包支付时，不需要设置\n        ];\n\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003erefund($order);\n\n        var_dump($globalPay-\u003etoArray());\n    }\n\n    public function return()\n    {\n        $data = GlobalPay::alipay($this-\u003econfig)-\u003everify();\n    }\n\n    public function notify()\n    {\n        $globalPay = GlobalPay::alipay($this-\u003econfig);\n\n        try {\n\n            $data = $globalPay-\u003everify();  // 验签\n\n            // 建议必须对以下几个参数进行业务逻辑验证\n            $outTradeNo = $data-\u003eget('out_trade_no');  // 商户需要验证该通知数据中的 out_trade_no 是否为商户系统中创建的订单号。\n            $tradeStatus = $data-\u003eget('trade_status');  // 在支付宝的业务通知中，只有交易通知状态为 TRADE_FINISHED 时，支付宝才会认定为买家付款成功。\n            $totalFee = $data-\u003eget('total_fee');  // 该笔订单的总金额。请求时对应的参数，原样通知回来。（外币金额）\n\n            Log::debug('GlobalPay Notify ===\u003e ', $data-\u003eall());\n\n        } catch (\\Exception $exception) {\n            Log::error('异步通知异常 ===\u003e ' . $exception-\u003egetMessage());\n            return $globalPay-\u003efail()-\u003esend();  // 其他框架\n            // return $globalPay-\u003efail();  // Laravel 框架可以直接这样\n        }\n\n        return $globalPay-\u003esuccess()-\u003esend();  // 其他框架\n        // return $globalPay-\u003esuccess();  //  Laravel 框架可以直接这样\n    }\n\n    /**\n     * 获取花呗分期计费情况\n     */\n    public function getHbFqCost()\n    {\n        $totalAmount = 100.88;\n\n        // 只需要获取 3 6 12 期相对应到还款数\n        // $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003egetHbFqCost($totalAmount);\n\n        // 获取 3 6 12 期相对应到还款数且显示出每一期的还款情况（用户承担所有的手续费）\n        // $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003egetHbFqCost($totalAmount, true);\n\n        // 获取 3 6 12 期相对应到还款数且显示出每一期的还款情况（商家承担所有的手续费）\n        // $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003egetHbFqCost($totalAmount, true, true);\n\n        // 花呗分期计算费率，参见：https://opendocs.alipay.com/open/277/105952?ref=api\n        $customerRates = [\n            0 =\u003e [  // 用户承担手续费\n                3 =\u003e 0.023,\n                6 =\u003e 0.045,\n                12 =\u003e 0.075\n            ],\n            100 =\u003e [  // 商家承担手续费\n                3 =\u003e 0.018,\n                6 =\u003e 0.045,\n                12 =\u003e 0.075\n            ]\n        ];\n        // 允许自己传入花呗分期费率（支付宝做活动时，费率可能会有变化）\n        $globalPay = GlobalPay::alipay($this-\u003econfig)-\u003egetHbFqCost($totalAmount, true, false, $customerRates);\n        \n        var_dump($globalPay-\u003etoArray());\n    }\n\n}\n\n```\n\n## 致谢\n\n本仓库架构思想借鉴于 「 [yansongda/pay](https://github.com/yansongda/pay) 」，感谢贵包作者提供如此好用的 PHP 支付 SDK 扩展包！\n\n## LICENSE\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpudongping%2Fglobal-pay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpudongping%2Fglobal-pay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpudongping%2Fglobal-pay/lists"}