{"id":20103050,"url":"https://github.com/luncher/alipay","last_synced_at":"2026-01-16T01:11:38.257Z","repository":{"id":40827566,"uuid":"85276470","full_name":"Luncher/alipay","owner":"Luncher","description":"Alipay Node.js SDK 基于最新版蚂蚁金服 支付宝开发文档","archived":false,"fork":false,"pushed_at":"2024-08-27T14:49:24.000Z","size":1799,"stargazers_count":216,"open_issues_count":7,"forks_count":58,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-08-18T12:55:59.221Z","etag":null,"topics":["alipay","nodejs","payments"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Luncher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-17T06:02:48.000Z","updated_at":"2025-06-17T15:20:31.000Z","dependencies_parsed_at":"2024-10-23T02:51:25.288Z","dependency_job_id":null,"html_url":"https://github.com/Luncher/alipay","commit_stats":{"total_commits":178,"total_committers":9,"mean_commits":19.77777777777778,"dds":0.449438202247191,"last_synced_commit":"61e986e0ca5b9b8225bf2b1b27aa77b68c495ee2"},"previous_names":["luncher/alipay-mobile"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/Luncher/alipay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luncher%2Falipay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luncher%2Falipay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luncher%2Falipay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luncher%2Falipay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Luncher","download_url":"https://codeload.github.com/Luncher/alipay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Luncher%2Falipay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271751926,"owners_count":24814707,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"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","nodejs","payments"],"created_at":"2024-11-13T17:34:09.074Z","updated_at":"2026-01-16T01:11:38.215Z","avatar_url":"https://github.com/Luncher.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# alipay\n\n[![NPM version][npm-image]][npm-url]\n[![Build Status][travis-image]][travis-url]\n[![David Status][david-image]][david-url]\n\u003c!--[![Codecov Status][codecov-image]][codecov-url]--\u003e\n\u003c!--[![NPM download][download-image]][download-url]--\u003e\n\n[npm-url]: https://www.npmjs.com/package/alipay-mobile\n[npm-image]: https://img.shields.io/npm/v/alipay-mobile.svg?style=flat\n[download-url]: https://www.npmjs.com/package/alipay-mobile\n[download-image]: https://img.shields.io/npm/dm/alipay-mobile.svg?style=flat\n[david-url]: https://david-dm.org/Luncher/alipay-mobile\n[david-image]: https://david-dm.org/Luncher/alipay-mobile.svg?style=flat\n[travis-url]: https://travis-ci.org/Luncher/alipay\n[travis-image]: https://img.shields.io/travis/Luncher/alipay.svg?style=flat\n[codecov-url]: https://codecov.io/gh/Luncher/alipay\n[codecov-image]: https://img.shields.io/codecov/c/github/Luncher/alipay.svg?style=flat\n\n\n[蚂蚁金服开放平台](https://openhome.alipay.com/platform/home.htm)`Node.js` SDK。\n\n---\n\n## 安装\n\n``` javascript\n\nnpm i alipay-mobile -S\n\n```\n\n## 基本使用\n\n``` javascript\nconst fs = require('fs')\nconst Alipay = require('alipay-mobile').default\n\nconst read = filename =\u003e {\n  return fs.readFileSync(path.resolve(__dirname, filename))\n}\n//notify_url: 异步通知url\n//app_id: 开放平台 appid\n//appPrivKeyFile: 你的应用私钥\n//alipayPubKeyFile: 蚂蚁金服公钥\nconst options = {\n  app_id: '2016080100137766',\n  appPrivKeyFile: read('./keys/app_priv_key.pem'),\n  alipayPubKeyFile: read('./keys/alipay_public_key.pem')\n}\n\nconst service = new Alipay(options)\nconst data = {\n  subject: '辣条',\n  out_trade_no: '1232423',\n  total_amount: '100'\n}\nconst result = service.createOrder(data)\nassert(result.code == 0, result.message)\n\n```\n\n## 说明\n\n\u003e详细参数请参考接口对应的官方文档\n\n### 构造函数支持的参数\n\n```ts\nexport interface AlipayOption {\n  appPrivKeyFile:   string      // 应用私钥\n  alipayPubKeyFile: string      // 支付宝公钥\n  appId:            string      // 应用ID\n  notifyUrl?:       string      // 支付宝异步通知URL\n  gatewayUrl?:      string      // 接口网关地址\n}\n```\n\n### 接口返回错误码以及错误信息\n\n``` ts\n\nexport enum AlipayNormalResponseCode {\n  OK                            = 0,\n  EXCEPTION                     = -1,\n  SIGNATURE_ERROR               = -2,\n  SUCCESS                       = 10000,\n  UNAVALIABLE                   = 20000,\n  INSUFFICIENT_AUTHORIZATION    = 20001,\n  MISSING_REQUIRED_ARGS         = 40001,\n  INVALID_ARGS                  = 40002,\n  PROCESSING_FAILURE            = 40004,\n  PERMISSION_DENIED             = 40006\n}\n\nexport enum AlipayPaymentResponseCode {\n  SUCCESS         = '9000',\n  PROCESSING      = '8000',\n  FAILURE         = '4000',\n  REPEAT_REQ      = '5000',\n  USER_CANCEL     = '6001',\n  NETWORK_ERROR   = '6002',\n  UNKNOW          = '6004'\n}\n\n```\n\n### 接口返回格式\n\n``` javascript\n{\n  code: 错误码,\n  message: 错误信息,\n  data: 蚂蚁金服返回的原始数据//可能为空对象\n}\n```\n\n---\n\n\n## 功能列表\n\n- [x] 创建订单\n- [x] 取消订单\n- [x] 订单查询\n- [x] 验证支付状态\n- [x] 订单状态异步推送\n- [x] 预创建订单\n- [x] 申请退款\n- [x] 退款查询\n- [x] 交易结算\n- [x] 关闭交易\n- [x] 账单下载地址查询\n- [x] 单笔转账到支付宝账户\n\n---\n\n## API 说明\n\n### 创建订单`createOrder`\n\n[APP支付官方文档](https://docs.open.alipay.com/204/105465/)\n\n\u003e用于返回给APP,传递给支付宝端发起交易申请 \n\n```javascript\nconst service = new Alipay(options)\nconst data = {\n  subject: '辣条',\n  out_trade_no: '1232423',\n  total_amount: '100'\n}\nconst result = service.createOrder(data)\nassert(result.code == 0, result.message)\n//result.data 用于返回给APP,传递给支付宝端发起交易申请\n```\n\n---\n\n### 创建网页订单`createWebOrderURL`\n\n[手机网页支付官方文档](https://docs.open.alipay.com/203/107090/)\n\n\u003e该接口用于支付宝手机网页支付，服务端调用该接口生成一个`URL`返回给客户端, 客户端拿到该`URL`之后跳转到该URL发起支付请求。支付结束支付宝会跳转到客户端填写的`return_url`。\n\n``` javascript\nconst service = new Alipay(options)\nconst data = {\n  subject: '辣条',\n  out_trade_no: '1232423',\n  total_amount: '100'\n}\nconst basicParams = {\n  return_url: 'http://xxx.com'\n}\nconst result = service.createWebOrderURL(data, basicParams)\nassert(result.code == 0, result.message)\n```\n\n---\n\n### 创建pc端订单`createPageOrderURL`\n[创建pc端订单官方文档](https://docs.open.alipay.com/270/105899/)\n\n``` javascript\nconst service = new Alipay(options)\nconst data = {\n  subject: '辣条',\n  out_trade_no: '1232423',\n  total_amount: '100'\n}\nconst basicParams = {\n  return_url: 'http://xxx.com'\n}\nconst result = service.createPageOrderURL(data, basicParams)\nassert(result.code == 0, result.message)\n```\n\n---\n\n### 订单查询`queryOrder`\n\n[订单查询官方文档](https://docs.open.alipay.com/api_1/alipay.trade.query)\n\n``` javascript\nconst outTradeNo = '1232423'\nreturn service.queryOrder({ out_trade_no: outTradeNo })\n.then(result =\u003e {\n  assert(result.code == '40004', result.message)\n})\n```\n\n---\n\n### 取消订单`cancelOrder`\n\n[取消订单官方文档](https://docs.open.alipay.com/api_1/alipay.trade.cancel)\n\n``` javascript\nconst outTradeNo = 'foobar'\nreturn service.cancelOrder({ out_trade_no: outTradeNo })\n.then(result =\u003e {\n  assert(result.code == '40004', result.message)\n})\n```\n\n---\n\n### 验证支付结果`verifyPayment`\n\n[App支付同步通知参数校验](https://docs.open.alipay.com/204/105302)\n\n```javascript\nconst params = {\n  memo: \"xxxx\",\n  result: \"xxxx\",\n  resultStatus: \"xxx\"\n}\nreturn utils.verifyPayment(params)\n\n```\n\n---\n\n### 异步通知校验`makeNotifyResponse`\n\n[异步通知官方文档](https://docs.open.alipay.com/204/105301/)\n\n```javascript\nconst params = {\n  sign: 'xxxxxxxx',\n  sign_type: 'xxxxx',\n  ...\n}\n\nreturn service.makeNotifyResponse(params)\n\n```\n\n### 交易关闭`tradeClose`\n\n[关闭交易官方文档](https://docs.open.alipay.com/api_1/alipay.trade.close/)\n\n```javascript\nconst params = {\n  out_trade_no: 'xxxxx'\n}\nreturn service.tradeClose(params)\n\n```\n\n---\n\n### 交易退款`tradeRefund`\n\n[交易退款官方文档](https://docs.open.alipay.com/api_1/alipay.trade.refund/)\n\n```javascript\nconst params = {\n  out_trade_no: 'xxxxx'\n}\nreturn service.tradeRefund(params)\n```\n\n---\n\n### 交易退款查询`tradeRefundQuery`\n\n[交易退款查询官方文档](https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query/)\n\n```javascript\nconst params = {\n  out_trade_no: 'xxxxx'\n}\nreturn service.tradeRefundQuery(params)\n```\n\n---\n\n### 查询账单下载地址`billDownloadQuery`\n\n[查询账单下载地址文档](https://docs.open.alipay.com/api_15/alipay.data.dataservice.bill.downloadurl.query)\n\n```javascript\nconst params = {\n  bill_type: 'trade',\n  bill_date: '2017-05-06'\n}\nreturn service.billDownloadQuery(params)\n\n```\n\n---\n\n### 交易预创建`tradePrecreate`\n\n[交易预创建官方文档](https://docs.open.alipay.com/api_1/alipay.trade.create/)\n\n```javascript\nconst params = {\n  out_trade_no: 'xxx',\n  seller_id: 'asad',\n  total_amount: '231wawsda',\n  subject: '面包'\n}\nreturn service.tradePrecreate(params)\n\n```\n\n---\n\n### 交易结算`tradeSettle`\n\n[交易结算官方文档](https://docs.open.alipay.com/api_1/alipay.trade.order.settle/)\n\n```javascript\nconst params = {\n  out_request_no: 'xxx'\n}\nreturn service.tradeSettle(params)\n```\n\n---\n\n### 单笔转账到支付宝账户接口`toaccountTransfer`\n\n[接口文档](https://opendocs.alipay.com/open/309/alipay.fund.trans.toaccount.transfer)\n\n```javascript\nconst params = {\n  out_biz_no: \"1234\",\n  payee_type: 'ALIPAY_LOGONID',\n  payee_account: \"user666\",\n  amount: \"100\"\n}\n\nreturn service.toaccountTransfer(params)\n\n```\n\n---\n\n## LICENSE\n\n  [MIT](https://mit-license.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncher%2Falipay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluncher%2Falipay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncher%2Falipay/lists"}