微信小程序userinfo支付 device info什么意思

苹果手机微信支付显示在safari内支付是什么意思_百度知道
苹果手机微信支付显示在safari内支付是什么意思
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
我有更好的答案
如下图 7 完成后,银行卡号,输入资料,如下图 5
为您推荐:
其他类似问题
safari的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。手机中微信支付和支付宝支付什么意思_百度知道
手机中微信支付和支付宝支付什么意思
我有更好的答案
微信支付就是腾讯的微信钱包支付, 支付宝又是另一种钱包工具。一个是腾讯的钱包一个是阿里巴巴的钱包,好比农业银行与建设银行。银行卡可以互通,这两种钱包不可互通。^.^
采纳率:54%
老板不同而已
微信支付是腾讯搞得第三方支付(老板是马化腾),支付宝是阿里搞得第三方支付(老板是马云)。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。客服:95017
1、签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
◆ key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
假设传送的参数如下:
appid:		wxd930ea5d5a258f4f
mch_id:		
device_info:	1000
body:		test
nonce_str:	ibuaiVcKdpRxkhJA
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=&nonce_str=ibuaiVcKdpRxkhJA";
第二步:拼接API密钥:
stringSignTemp=stringA+"&key=c09247ec02edce69f6a2d" //注:key为商户平台设置的密钥key
sign=MD5(stringSignTemp).toUpperCase()="9A0AA9CF3B7" //注:MD5签名方式
sign=hash_hmac("sha256",stringSignTemp,key).toUpperCase()="6A9AE57D693A078E1C3E4BB6BA4DC30B23E0EEDACD6"
//注:HMAC-SHA256签名方式
最终得到最终发送的数据:
<xml>
<appid>wxd930ea5d5a258f4f</appid>
<mch_id>;/mch_id>
<device_info>1000</device_info>
<body>test</body>
<nonce_str>ibuaiVcKdpRxkhJA</nonce_str>
<sign>9A0AA9CF3B7</sign>
</xml>
2、生成随机数算法
微信支付API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。
3、商户证书
(1)获取商户证书
微信支付接口中,涉及资金回滚的接口会使用到商户证书,包括退款、撤销接口。商家在申请微信支付成功后,收到的相应邮件后,可以按照指引下载API证书,也可以按照以下路径下载:微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载 。证书文件说明如下:
pkcs12格式(apiclient_cert.p12、
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份
撤销、退款申请API中调用
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:)
以下两个证书在PHP环境中使用:
证书pem格式(apiclient_cert.pem)
从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制
PHP等不能直接使用p12文件,而需要使用pem,为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl&pkcs12&-clcerts&-nokeys&-in&apiclient_cert.p12&-out&apiclient_cert.pem
证书密钥pem格式(apiclient_key.pem)
从apiclient_key.pem中导出密钥部分的文件,为pem格式
PHP等不能直接使用p12文件,而需要使用pem,为了方便您使用,已为您直接提供
您也可以使用openssl命令来自己导出:openssl&pkcs12&-nocerts&-in&apiclient_cert.p12&-out&apiclient_key.pem
(2)使用商户证书
◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用。
◆ 商户证书调用或安装需要使用到密码,该密码的值为微信商户号(mch_id)
(3)商户证书安全
证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载。商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。
4、商户回调API安全
在普通的网络环境下,HTTP请求存在DNS劫持、运营商插入广告、数据被窃取,正常数据被修改等安全风险。商户回调接口使用HTTPS协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付的各种回调采用HTTPS协议。请参考:。首先获取微信支付能力:
QQ截图51.png (4.09 KB, 下载次数: 0)
11:28 上传
如图我的app已经获取到。第二步:看包名和签名
这是从A获得的包名:
QQ截图36.png (29.57 KB, 下载次数: 0)
11:31 上传
这是微信开放平台获得的
3.png (6.44 KB, 下载次数: 0)
11:32 上传
签名是用签名工具生成的
Screenshot_-16-57-40.png (194.44 KB, 下载次数: 4)
11:38 上传
第三步:配置文件
pz.png (3.55 KB, 下载次数: 0)
11:39 上传
确定配置没写错
第四步代码:拷贝的官方的function wxPay() {
& & & & & & & & & & & & var wxPay = api.require('wxPay');
& & & & & & & & & & & & wxPay.config({
& & & & & & & & & & & & & & & & apiKey : 'wxdeb2bf8', //appid
& & & & & & & & & & & & & & & & mchId : '',//商户号
& & & & & & & & & & & & & & & & partnerKey : '2Sp3MJOg6r5sjFGa78}F360kmS;f7n',//商户 API 密钥
& & & & & & & & & & & & & & & & notifyUrl : 'product.html'支付结果回调页面
& & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & & & & & alert('配置商户支付参数成功');//程序已经走进来了,下面的老是返回-1,不知道问题出在哪里
& && && && && && && && && && && && && & //以下代码全部拷贝的官方的,没做任何修改,不知道这里是不是因为有什么东西没修改而报的错
& & & & & & & & & & & & & & & & & & & & wxPay.pay({
& & & & & & & & & & & & & & & & & & & & & & & & description : 'iPad mini 16G 白色',
& & & & & & & & & & & & & & & & & & & & & & & & totalFee : '888',
& & & & & & & & & & & & & & & & & & & & & & & & tradeNo : '8018',
& & & & & & & & & & & & & & & & & & & & & & & & spbillCreateIP : '196.168.1.1',
& & & & & & & & & & & & & & & & & & & & & & & & deviceInfo : '764',
& & & & & & & & & & & & & & & & & & & & & & & & detail : 'iPad mini 16G 白色',
& & & & & & & & & & & & & & & & & & & & & & & & attach : '说明',
& & & & & & & & & & & & & & & & & & & & & & & & feeType : 'CNY',
& & & & & & & & & & & & & & & & & & & & & & & & timeStart : '10',
& & & & & & & & & & & & & & & & & & & & & & & & timeExpire : '10',
& & & & & & & & & & & & & & & & & & & & & & & & goodsTag : 'WXG',
& & & & & & & & & & & & & & & & & & & & & & & & productId : '',
& & & & & & & & & & & & & & & & & & & & & & & & openId : 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o'
& & & & & & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & alert(ret.result);
& & & & & & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & alert(err.code);
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & alert(err.code);
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & });
& & & & & & & & }
目前就是返回-1,卡住好久了,希望大神给你解决,素心万分感谢。
本帖最后由 素心 于
19:15 编辑
报错是签名不对,签名的问题按照流程来的,不知道怎么解决了,再有就是我昨天晚上改的签名到现在24个小时多了,不会不生效吧!
在看,你发出你二维码,有帐号发个
你的 notifyUrl好像不对吧。
这里有个帖子,虽然不是在说微信支付,但其实都差不多,估计你看看这个帖子就明白notifyUrl是什么了.
pay接口里的参数先不要传那么多,把必传的传了试试先
var wxPay = api.require('wxPay');
& && &&&wxPay.pay({
& && && && &&&description: 'iPad mini 16G 白色',
& && && && &&&totalFee: '1',
& && && && &&&tradeNo: 'abcdefghijklmnopqrstuvw'
& && && & },function(ret, err){
& && && && & if(ret.status){
& && && && && & alert(ret.result);
& && && && & }else{
& && && && && & alert(err.code);
& && && && & }
& && && & });
var wxPay = api.require('wxPay');
& & & & & & & & wxPay.config({
& & & & & & & & & & & & apiKey : appId,
& & & & & & & & & & & & mchId : mchId,
& & & & & & & & & & & & partnerKey : key,
& & & & & & & & & & & & notifyUrl : notify
& & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & alert('配置商户支付参数成功');
& & & & & & & & & & & & & & & & wxPay.pay({
& & & & & & & & & & & & & & & & & & & & description : 'iPad mini 16G 白色',
& & & & & & & & & & & & & & & & & & & & totalFee : 1,
& & & & & & & & & & & & & & & & & & & & tradeNo : '8018'
& & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & & & & & & & & & alert('支付成功');
& & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & alert(err.code);
& & & & & & & & & & & & & & & & & & & & & & & & alert(err.msg);
& & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & });
& & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & alert(err.code);
& & & & & & & & & & & & }
& & & & & & & & });
tradeNo 自己生成
我通过自己的服务器返回这么一串东西,改怎么用啊{&appid&:&wxdeb2bf8&,&partnerid&:&&,&prepayid&:&wxc&,&package&:&Sign=WXPay&,&noncestr&:&3YSmjL3fIX6B01up&,&timestamp&:,&sign&:&AAE0A2DF6&}
我通过自己的服务器返回这么一串东西,改怎么用啊{&appid&:&wxdeb2bf8&,&partnerid&:&& ...
问你自己的服务器
function wxPay() {
& & & & & & & & & & & & //首先判断用户有没有安装微信客户端
& & & & & & & & & & & & var wx = api.require('wx');
& & & & & & & & & & & & wx.isInstalled(function(ret, err) {
& & & & & & & & & & & & & & & & if (ret.installed) {
& & & & & & & & & & & & & & & & & & & & api.ajax({
& & & & & & & & & & & & & & & & & & & & & & & & url : serverUrl + 'OrderService.ashx',
& & & & & & & & & & & & & & & & & & & & & & & & method : 'post',
& & & & & & & & & & & & & & & & & & & & & & & & cache : 'false',
& & & & & & & & & & & & & & & & & & & & & & & & timeout : 30,
& & & & & & & & & & & & & & & & & & & & & & & & dataTpye : 'json',
& & & & & & & & & & & & & & & & & & & & & & & & data : {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & values : {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & TotalFee : '100',
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & Des : '说明'
& & & & & & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & & & & & if (ret) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & var wxPay = api.require('wxPay');
& & & & & & & & & & & & & & & & & & & & & & & & & & & & wxPay.payOrder({
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & apiKey : ret.appid,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & orderId : '',
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & mchId : ret.partnerid,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & nonceStr : ret.prepayid,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & timeStamp : ret.timestamp,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & package : ret.package,
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & sign : ret.sign
& & & & & & & & & & & & & & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //支付成功
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & alert('支付成功...');
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & alert('错误:' + err.code+err.msg);
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & api.alert({
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & title : '玩卡提示',
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & msg : '服务器调用失败...'
& & & & & & & & & & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & alert('当前设备未安装微信客户端');
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & });
& & & & & & & & }
还是返回-1
这个 订单号我是从服务端生成的
QQ截图15.png (60.94 KB, 下载次数: 0)
16:34 上传
以下是我支付的代码:& & & & //首先判断用户有没有安装微信客户端
& & & & & & & & & & & & var wx = api.require('wx');
& & & & & & & & & & & & wx.isInstalled(function(ret, err) {
& & & & & & & & & & & & & & & & if (ret.installed) {
& & & & & & & & & & & & & & & & & & & & api.ajax({
& & & & & & & & & & & & & & & & & & & & & & & & url : serverUrl + 'OrderService.ashx',
& & & & & & & & & & & & & & & & & & & & & & & & method : 'post',
& & & & & & & & & & & & & & & & & & & & & & & & cache : 'false',
& & & & & & & & & & & & & & & & & & & & & & & & timeout : 30,
& & & & & & & & & & & & & & & & & & & & & & & & dataTpye : 'json',
& & & & & & & & & & & & & & & & & & & & & & & & data : {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & values : {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & TotalFee : '100',
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & Des : '说明'
& & & & & & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & & & & & if (ret) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & var wxPay = api.require('wxPay');
& & & & & & & & & & & & & & & & & & & & & & & & & & & & wxPay.payOrder({
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & apiKey : ret.appid, //从微信开放平台获取的 appid
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & orderId : ret.prepayid, //获取的订单号
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & mchId : ret.partnerid, //商家和微信合作的 id 号
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & nonceStr : ret.noncestr, //随机字符串,防重发
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & timeStamp : ret.timestamp, //时间戳,防重发
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & package : ret.package, //扩展字段,暂填写固定值Sign=WXPay
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & sign : ret.sign//商家根据微信开放平台文档对数据做的签名
& & & & & & & & & & & & & & & & & & & & & & & & & & & & }, function(ret, err) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & if (ret.status) {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & //支付成功
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & alert('支付成功...');
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & alert('错误:' + err.code);
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & & & & & & & & & api.alert({
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & title : '玩卡提示',
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & msg : '服务器调用失败...'
& & & & & & & & & & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & & & & & & & & & }
& & & & & & & & & & & & & & & & & & & & });
& & & & & & & & & & & & & & & & } else {
& & & & & & & & & & & & & & & & & & & & alert('当前设备未安装微信客户端');
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & & });
& & & & & & & & }
不知道哪里还不对,测试的时候还是返回错误码-1
不应该是签名的问题吧?我按照官网上面飞教程来的,对照了好几遍了,确认签名没搞错。
先用支付方案二看看是否能够支付成功,然后再替换升级为方案一支付。
如果方案二可以支付成功,说明你的商家账号是没问题的,
此时再用方案一,如果不行说明是你签名不对
APICloud粉丝
我为APICloud代言!
(C) 2014 APICloud客服:95017
提交刷卡支付
收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付。
提醒1:提交支付请求后微信会同步返回支付结果。当返回结果为“系统错误”时,商户系统等待5秒后调用【】,查询支付实际交易结果;当返回结果为“USERPAYING”时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);
提醒2:在调用查询接口返回后,如果交易状况不明晰,请调用【】,此时如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。当撤销无返回或错误时,请再次调用。注意:请勿扣款后立即调用【】,建议至少15秒后再调用。撤销订单API需要双向证书。
支付状态转变如下:
接口地址【】
https://api.mch.weixin.qq.com/pay/micropay
是否需要证书
公众账号ID
String(32)
微信分配的公众账号ID(企业号corpid即为此appId)
String(32)
微信支付分配的商户号
device_info
String(32)
终端设备号(商户自定义,如门店编号)
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
随机字符串,不长于32位。推荐
String(32)
C380BEC2BFD727A4BF3AD6
String(32)
HMAC-SHA256
签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
String(128)
image形象店-深圳腾大- QQ公仔
商品简单描述,该字段须严格按照规范传递,具体请见
String(6000)
单品优惠功能字段,需要接入详见
String(127)
附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
商户订单号
out_trade_no
String(32)
商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。详见
订单总金额,单位为分,只能为整数,详见
String(16)
符合ISO4217标准的三位字母代码,默认人民币:CNY,详见
spbill_create_ip
String(16)
调用微信支付API的机器IP
订单优惠标记
String(32)
订单优惠标记,代金券或立减优惠功能的参数,详见
指定支付方式
String(32)
no_credit--指定不能使用信用卡支付
交易起始时间
time_start
String(14)
订单生成时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10。其他详见
交易结束时间
time_expire
String(14)
订单失效时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10。注意:最短失效时间间隔需大于1分钟
String(128)
扫码支付授权码,设备读取用户微信中的条码或者二维码信息
(注:用户刷卡条形码规则:18位纯数字,以10、11、12、13、14、15开头)
scene_info
String(256)
{&store_info& : {&id&: &SZTX001&,&name&: &腾大餐厅&,&area_code&: &440305&,&address&: &科技园中一路腾讯大厦& }}
该字段用于上报场景信息,目前支持上报实际门店信息。该字段为JSON对象数据,对象格式为{"store_info":{"id": "门店ID","name": "名称","area_code": "编码","address": "地址" }} ,字段详细说明请点击行前的+展开
String(32)
门店唯一标识
String(64)
腾讯大厦腾大餐厅
-门店行政区划码
门店所在地行政区划码,详细见
-门店详细地址
String(128)
科技园中一路腾讯大厦
门店详细地址
举例如下:
&appid&wx0ec43b&/appid&
&attach&订单额外描述&/attach&
&auth_code&844649&/auth_code&
&body&刷卡支付测试&/body&
&device_info&1000&/device_info&
&goods_tag&&/goods_tag&
&mch_id&&/mch_id&
&nonce_str&8aaee146b1dee7cec9100add9b96cbe2&/nonce_str&
&out_trade_no&&/out_trade_no&
&spbill_create_ip&14.17.22.52&/spbill_create_ip&
&time_expire&&/time_expire&
&total_fee&1&/total_fee&
&sign&C29DB7DB1FDC&/sign&
注:参数值用XML转义即可,CDATA标签用于说明数据不被XML解析器解析。
返回状态码
return_code
String(16)
SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因 签名失败 参数格式校验错误
当return_code为SUCCESS的时候,还会包括以下字段:
公众账号ID
String(32)
调用接口提交的公众账号ID
String(32)
调用接口提交的商户号
device_info
String(32)
调用接口提交的终端设备号,
随机字符串
String(32)
5K8264ILTKCH16CQ2502SI8ZNMTM67VS
微信返回的随机字符串
String(32)
C380BEC2BFD727A4BF3AD6
微信返回的签名,详见
result_code
String(16)
SUCCESS/FAIL
String(32)
SYSTEMERROR
详细参见错误列表
错误代码描述
err_code_des
String(128)
错误返回的信息描述
当return_code 和result_code都为SUCCESS的时,还会包括以下字段:
String(128)
用户在商户appid 下的唯一标识
是否关注公众账号
is_subscribe
用户是否关注公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
trade_type
String(16)
MICROPAY 刷卡支付
String(32)
银行类型,采用字符串类型的银行标识,详见
String(16)
符合ISO 4217标准的三位字母代码,默认人民币:CNY,详见
订单总金额,单位为分,只能为整数,详见
应结订单金额
settlement_total_fee
当订单使用了免充值型优惠券后返回该参数,应结订单金额=订单金额-免充值优惠券金额。
代金券金额
coupon_fee
“代金券”金额<=订单金额,订单金额-“代金券”金额=现金支付金额,详见
现金支付货币类型
cash_fee_type
String(16)
符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见
现金支付金额
订单现金支付金额,详见
微信支付订单号
transaction_id
String(32)
微信支付订单号
商户订单号
out_trade_no
String(32)
商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*且在同一个商户号下唯一。
商家数据包
String(128)
商家数据包,原样返回
支付完成时间
String(14)
订单生成时间,格式为yyyyMMddHHmmss,如日9点10分10秒表示为10。详见
promotion_detail
String(6000)
示例见下文
新增返回,单品优惠功能字段,需要接入请见
举例如下:
&return_code&&![CDATA[SUCCESS]]&&/return_code&
&return_msg&&![CDATA[OK]]&&/return_msg&
&appid&&![CDATA[wx0ec43b]]&&/appid&
&mch_id&&![CDATA[]]&&/mch_id&
&device_info&&![CDATA[1000]]&&/device_info&
&nonce_str&&![CDATA[GOp3TRyMXzbMlkun]]&&/nonce_str&
&sign&&![CDATA[D6C76CB785F07992CDE0FD]]&&/sign&
&result_code&&![CDATA[SUCCESS]]&&/result_code&
&openid&&![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]&&/openid&
&is_subscribe&&![CDATA[Y]]&&/is_subscribe&
&trade_type&&![CDATA[MICROPAY]]&&/trade_type&
&bank_type&&![CDATA[CCB_DEBIT]]&&/bank_type&
&total_fee&1&/total_fee&
&coupon_fee&0&/coupon_fee&
&fee_type&&![CDATA[CNY]]&&/fee_type&
&transaction_id&&![CDATA[0873]]&&/transaction_id&
&out_trade_no&&![CDATA[]]&&/out_trade_no&
&attach&&![CDATA[订单额外描述]]&&/attach&
&time_end&&![CDATA[43]]&&/time_end&
注意:如果当前交易返回的支付状态是明确的错误原因造成的支付失败(支付确认失败),请重新下单支付;如果当前交易返回的支付状态是不明错误(支付结果未知),请调用查询订单接口确认状态,如果长时间(建议30秒)都得不到明确状态请调用撤销订单接口。
SYSTEMERROR
接口返回错误
支付结果未知
请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。
PARAM_ERROR
支付确认失败
请求参数未按指引进行填写
请根据接口返回的详细信息检查您的程序
订单已支付
支付确认失败
订单号重复
请确认该订单号是否重复支付,如果是新单,请使用新订单号提交
商户无权限
支付确认失败
商户没有开通被扫支付权限
请开通商户号权限。请联系产品或商务申请
AUTHCODEEXPIRE
二维码已过期,请用户在微信上刷新后再试
支付确认失败
用户的条码已经过期
请收银员提示用户,请用户在微信上刷新条码,然后请收银员重新扫码。
直接将错误展示给收银员
支付确认失败
用户的零钱余额不足
请收银员提示用户更换当前支付的卡,然后请收银员重新扫码。建议:商户系统返回给收银台的提示为“用户余额不足.提示用户换卡支付”
NOTSUPORTCARD
不支持卡类型
支付确认失败
用户使用卡种不支持当前支付形式
请用户重新选择卡种
建议:商户系统返回给收银台的提示为“该卡不支持当前支付,提示用户换卡支付或绑新卡支付”
ORDERCLOSED
订单已关闭
支付确认失败
该订单已关
商户订单号异常,请重新下单支付
ORDERREVERSED
订单已撤销
支付确认失败
当前订单已经被撤销
当前订单状态为“订单已撤销”,请提示用户重新支付
银行系统异常
支付结果未知
银行端超时
请立即调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
USERPAYING
用户支付中,需要输入密码
支付结果未知
该笔交易因为业务规则要求,需要用户输入支付密码。
等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
AUTH_CODE_ERROR
授权码参数错误
支付确认失败
请求参数未按指引进行填写
每个二维码仅限使用一次,请刷新再试
AUTH_CODE_INVALID
授权码检验错误
支付确认失败
收银员扫描的不是微信支付的条码
请扫描微信支付被扫条码/二维码
XML_FORMAT_ERROR
XML格式错误
支付确认失败
XML格式错误
请检查XML参数格式是否正确
REQUIRE_POST_METHOD
请使用post方法
支付确认失败
未使用post传递参数
请检查请求参数是否通过post方法提交
支付确认失败
参数签名结果不正确
请检查签名参数和方法是否都符合签名算法要求
LACK_PARAMS
支付确认失败
缺少必要的请求参数
请检查参数是否齐全
编码格式错误
支付确认失败
未使用指定编码格式
请使用UTF-8编码格式
BUYER_MISMATCH
支付帐号错误
支付确认失败
暂不支持同一笔订单更换支付方
请确认支付方是否相同
APPID_NOT_EXIST
APPID不存在
支付确认失败
参数中缺少APPID
请检查APPID是否正确
MCHID_NOT_EXIST
MCHID不存在
支付确认失败
参数中缺少MCHID
请检查MCHID是否正确
OUT_TRADE_NO_USED
商户订单号重复
支付确认失败
同一笔交易不能多次提交
请核实商户订单号是否重复提交
APPID_MCHID_NOT_MATCH
appid和mch_id不匹配
支付确认失败
appid和mch_id不匹配
请确认appid和mch_id是否匹配
INVALID_REQUEST
支付确认失败
商户系统异常导致,商户权限异常、重复请求支付、证书错误、频率限制等
请确认商户系统是否正常,是否具有相应支付权限,确认证书是否正确,控制频率
TRADE_ERROR
支付确认失败
业务错误导致交易失败、用户账号异常、风控、规则限制等
请确认帐号是否存在异常

我要回帖

更多关于 微信小程序 device 的文章

 

随机推荐