我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信开发中CloudPay.unifiedOrder()怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信开发中CloudPay.unifiedOrder()怎么用

小编给大家分享一下微信开发中CloudPay.unifiedOrder()怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

CloudPay.unifiedOrder()

支持端:云函数 2.0.2

微信支付统一下单

说明

商户在小程序中先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易后调起支付。

关键参数说明

云开发相关关键参数说明: 回调函数设置:envId 和 functionName 用来设置接收支付后的异步通知回调的云函数 返回字段 payment:该对象即是在小程序端调用 wx.requestPayment 所需的信息

回调云函数返回协议

支付结果回调的云函数必须返回如下一个对象,否则会视为回调不成功,云函数会收到重复的支付回调:

字段名变量名必填类型描述

错误码errcode是Number0

错误信息errmsg是String

参数说明

字段名变量名必填类型示例值描述

结果通知回调云函数名functionName是Stringpaycallback接收微信支付异步通知回调的云函数名

结果通知回调云函数环境envId是Stringtest-123接收微信支付异步通知回调的云函数所在的环境 ID

子商户号subMchId是String(32)1900000109微信支付分配的子商户号

设备号deviceInfo否String(32)013467007045764终端设备号(门店号或收银设备ID),注意:PC网页或公众号内支付请传"WEB"

随机字符串nonceStr是String(32)5K8264ILTKCH16CQ2502SI8ZNMTM67VS随机字符串,不长于32位。推荐随机数生成算法

商品描述body是String(128)腾讯充值中心-QQ会员充值商品简单描述,该字段须严格按照规范传递,具体请见参数规定

商品详情detail否String(6000)商品详细描述,对于使用单品优惠的商户,该字段必须按照规范上传,详见“单品优惠参数说明”

附加数据attach否String(127)说明附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据

商户订单号outTradeNo是String(32)1217752501201407033233368018商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-

货币类型feeType否String(16)CNY符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型

总金额totalFee是Int888订单总金额,只能为整数,详见支付金额

终端IPspbillCreateIp是String(64)123.12.12.123支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP

交易起始时间timeStart否String(14)20091225091010订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则

交易结束时间timeExpire否String(14)20091227091010订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。订单失效时间是针对订单号而言的,由于在请求支付的时候有一个必传参数prepay_id只有两小时的有效期,所以在重入时间超过2小时的时候需要重新请求下单接口获取新的prepay_id。其他详见时间规则。

建议:最短失效时间间隔大于1分钟

订单优惠标记goodsTag否String(32)WXG订单优惠标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠

交易类型tradeType是String(16)JSAPI小程序取值如下:JSAPI,详细说明见参数规定

指定支付方式limitPay否String(32)no_creditno_credit--指定不能使用信用卡支付

用户标识openid否String(128)oUpF8uMuAJO_M2pxb1Q9zNjWeS6otrade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。openid如何获取,可参考【获取openid】。

用户子标识subOpenid否String(128)oUpF8uMuAJO_M2pxb1Q9zNjWeS6otrade_type=JSAPI,此参数必传,用户在子商户appid下的唯一标识。openid和sub_openid可以选传其中之一,如果选择传sub_openid,则必须传sub_appid。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。

电子发票入口开放标识receipt否String(8)YY,传入Y时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效

场景信息sceneInfo否String(256)Y该字段常用于线下活动时的场景信息上报,支持上报实际门店信息,商户也可以按需求自己上报相关信息。该字段为JSON对象数据,对象格式为{"store_info":{"id": "门店ID","name": "名称","area_code": "编码","address": "地址" }}

sceneInfo.storeInfo 对象说明*

字段名变量名必填类型示例值描述

门店idid否String(32)SZTX001门店编号,由商户自定义

门店名称name否String(64)腾讯大厦腾大餐厅门店名称 ,由商户自定义

门店行政区划码area_code否String(6)440305门店所在地行政区划码,详细见《最新县及县以上行政区划代码》

门店详细地址address否String(128)科技园中一路腾讯大厦门店详细地址 ,由商户自定义

返回值说明

字段名变量名必填类型示例值描述

返回状态码returnCode是String(16)SUCCESSSUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断

返回信息returnMsg否String(128)签名失败返回信息,如非空,为错误原因。如 签名失败、参数格式校验错误

以下字段在returnCode为SUCCESS的时候有返回

字段名变量名必填类型示例值描述

小程序中发起支付所需信息payment是Object小程序端调用 wx.requestPayment 所需信息

服务商的APPIDappid是String(32)wxd678efh667hg6787服务商商户的APPID

商户号mch_id是String(32)1900000109调用接口提交的商户号

小程序的APPIDsub_appid是String(32)wx8888888888888888微信分配的小程序ID

子商户号sub_mch_id是String(32)1900000109微信支付分配的子商户号

设备号device_info否String(32)013467007045764调用接口提交的终端设备号,

随机字符串nonce_str是String(32)5K8264ILTKCH16CQ2502SI8ZNMTM67VS微信返回的随机字符串

签名sign是String(64)C380BEC2BFD727A4B6845133519F3AD6微信返回的签名,详见签名算法

业务结果result_code是String(16)SUCCESSSUCCESS/FAIL

错误代码err_code否String(32)SYSTEMERROR详细参见第6节错误列表

错误代码描述err_code_des否String(128)系统错误错误返回的信息描述

以下字段在returnCode 和result_code都为SUCCESS的时候有返回

字段名变量名必填类型示例值描述

交易类型trade_type是String(16)JSAPI调用接口提交的交易类型,取值如下:JSAPI,详细说明见参数规定

预支付交易会话标识prepay_id是String(64)wx201410272009395522657a690389285100微信生成的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时

二维码链接code_url否String(64)weixin://wxpay/bizpayurl/up?pr=NwY5Mz9&groupid=00trade_type=NATIVE时有返回,此url用于生成支付二维码,然后提供给用户进行扫码支付。注意:code_url的值并非固定,使用时按照URL格式转成二维码即可

错误码

名称描述原因解决方案

INVALID_REQUEST参数错误参数格式有误或者未按规则上传订单重入时,要求参数值与原请求一致,请确认参数问题

NOAUTH商户无此接口权限商户未开通此接口权限请商户前往申请此接口权限

NOTENOUGH余额不足用户帐号余额不足用户帐号余额不足,请用户充值或更换支付卡后再支付

ORDERPAID商户订单已支付商户订单已支付,无需重复操作商户订单已支付,无需更多操作

ORDERCLOSED订单已关闭当前订单已关闭,无法支付当前订单已关闭,请重新下单

SYSTEMERROR系统错误系统超时系统异常,请用相同参数重新调用

APPID_NOT_EXISTAPPID不存在参数中缺少APPID请检查APPID是否正确

MCHID_NOT_EXISTMCHID不存在参数中缺少MCHID请检查MCHID是否正确

APPID_MCHID_NOT_MATCHappid和mch_id不匹配appid和mch_id不匹配请确认appid和mch_id是否匹配

LACK_PARAMS缺少参数缺少必要的请求参数请检查参数是否齐全

OUT_TRADE_NO_USED商户订单号重复同一笔交易不能多次提交请核实商户订单号是否重复提交

SIGNERROR签名错误参数签名结果不正确请检查签名参数和方法是否都符合签名算法要求

XML_FORMAT_ERRORXML格式错误XML格式错误请检查XML参数格式是否正确

REQUIRE_POST_METHOD请使用post方法未使用post传递参数请检查请求参数是否通过post方法提交

POST_DATA_EMPTYpost数据为空post数据不能为空请检查post数据是否为空

NOT_UTF8编码格式错误未使用指定编码格式请使用UTF-8编码格式

示例代码

// 云函数代码

const cloud = require('wx-server-sdk')

cloud.init({

env: cloud.DYNAMIC_CURRENT_ENV

})

exports.main = async (event, context) => {

const res = await cloud.cloudPay.unifiedOrder({

"body" : "小秋TIT店-超市",

"outTradeNo" : "1217752501201407033233368018",

"spbillCreateIp" : "127.0.0.1",

"subMchId" : "1900009231",

"totalFee" : 1,

"envId": "test-f0b102",

"functionName": "pay_cb"

})

return res

}

// 小程序代码

wx.cloud.callFunction({

name: '函数名',

data: {

// ...

},

success: res => {

const payment = res.result.payment

wx.requestPayment({

...payment,

success (res) {

console.log('pay success', res)

},

fail (res) {

console.error('pay fail', err)

}

})

},

fail: console.error,

})

看完了这篇文章,相信你对“微信开发中CloudPay.unifiedOrder()怎么用”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信开发中CloudPay.unifiedOrder()怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信开发中CloudPay.unifiedOrder()怎么用

小编给大家分享一下微信开发中CloudPay.unifiedOrder()怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!CloudPay.unifiedOrder()支持端:云函数 2.0.2微信支付统一下单说明商户
2023-06-26

微信开发中CloudPay.queryRefund()怎么用

这篇文章给大家分享的是有关微信开发中CloudPay.queryRefund()怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。CloudPay.queryRefund()支持端:云函数 2.0.2查询退款说
2023-06-26

微信开发中CloudPay.downloadBill()怎么用

小编给大家分享一下微信开发中CloudPay.downloadBill()怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CloudPay.downloadB
2023-06-26

微信开发中saveImageToPhotosAlbum()怎么用

这篇文章主要为大家展示了“微信开发中saveImageToPhotosAlbum()怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信开发中saveImageToPhotosAlbum()
2023-06-26

微信开发中CloudPay.refund()有什么用

这篇文章主要为大家展示了“微信开发中CloudPay.refund()有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信开发中CloudPay.refund()有什么用”这篇文章吧。Cl
2023-06-26

怎么用mpvue开发微信小程序

这篇文章主要讲解了“怎么用mpvue开发微信小程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用mpvue开发微信小程序”吧!一、mpvue简介mpvue 是一个使用 Vue.js 开
2023-07-04

怎么在微信小程序开发中使用Hprose

这篇文章主要介绍“怎么在微信小程序开发中使用Hprose”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么在微信小程序开发中使用Hprose”文章能帮助大家解决问题。  首先下载微信小程序开发工具,
2023-06-26

微信开发中CloudPay.closeOrder()函数有什么用

这篇文章主要介绍微信开发中CloudPay.closeOrder()函数有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!CloudPay.closeOrder()支持端:云函数 2.0.2关闭订单说明以下情况需
2023-06-26

怎么使用mpvue开发微信小程序

本篇内容介绍了“怎么使用mpvue开发微信小程序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!小程序以离线包方式下载到本地,通过微信客户端载
2023-06-26

微信小程序开发怎么获取用户信息

这篇文章主要介绍了微信小程序开发怎么获取用户信息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序开发怎么获取用户信息文章都会有所收获,下面我们一起来看看吧。第一中直接授权获取(在同一页面之中):首先在微
2023-06-29

微信小程序开发怎么计算开发成本

这篇文章主要介绍了微信小程序开发怎么计算开发成本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1微信小程序开发需要多少钱?  小程序开发的成本投入大概在2万左右,相比较APP
2023-06-26

小程序怎么开发调用微信支付及微信回调地址

本篇内容主要讲解“小程序怎么开发调用微信支付及微信回调地址”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“小程序怎么开发调用微信支付及微信回调地址”吧!首先观看微信提供的文档https://pay
2023-06-30

微信小程序开发中怎么编写Hello world

今天小编给大家分享一下微信小程序开发中怎么编写Hello world的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发工具是
2023-06-19

微信小程序开发怎么配置

本文小编为大家详细介绍“微信小程序开发怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序开发怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。微信小程序开发:简单配置教程包括对小程序全局配置,
2023-06-26

微信开发中设置星标有什么作用

小编给大家分享一下微信开发中设置星标有什么作用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!星标朋友就是一种分组,在通讯录里分组在最上面,方便人们查找的,作用就是置顶了,也是方便你选些特定朋友在最显眼的地方点击与之聊天。本
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录