微信支付 订阅
微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。微信支付以绑定银行卡的快捷支付为基础,向用户提供安全、快捷、高效的支付服务。 [1]  自2017年11月23日起,微信支付服务功能在中国铁路客户服务中心12306网站上线运行。 [2]  2018年4月1日,消费者在使用微信钱包扫描静态条码支付时,单日使用零钱包支付的上限不超过500元,同时微信关联的所有银行卡还可以再独立获得500元的支付上限。 [3]  2018年3月,车牌=付款码,微信直接推出“高速e行”。 [4]  2018年6月29日,微信支付与米其林指南在广州宣布达成战略合作。 [5]  2020年2月,微信支付取得了尼泊尔央行的运营牌照。 [6] 展开全文
微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。微信支付以绑定银行卡的快捷支付为基础,向用户提供安全、快捷、高效的支付服务。 [1]  自2017年11月23日起,微信支付服务功能在中国铁路客户服务中心12306网站上线运行。 [2]  2018年4月1日,消费者在使用微信钱包扫描静态条码支付时,单日使用零钱包支付的上限不超过500元,同时微信关联的所有银行卡还可以再独立获得500元的支付上限。 [3]  2018年3月,车牌=付款码,微信直接推出“高速e行”。 [4]  2018年6月29日,微信支付与米其林指南在广州宣布达成战略合作。 [5]  2020年2月,微信支付取得了尼泊尔央行的运营牌照。 [6]
信息
发布时间
2013年8月5日
所属企业
腾讯
平    台
微信第三方平台
所属用户
微信app使用者
中文名
微信支付
注册用户
8亿(2017年12月) [7]
支持系统
IOS,安卓
外文名
WeChat Pay
微信支付发展历程
2013年8月5日,财付通与微信合作推出微信支付。 [8]  微信支付正式上线。 [9]  2014年1月4日,滴滴打车接入微信支付,3天突破10万单。 [10]  2014年1月27日,微信正式推出微信红包,并迅速流行开来。 [8]  2014年08月28日,智慧生活全行业解决方案正式公布。 [11]  2015年02月18日,开创春晚红包,10.1亿次收发创新了春节全民红包互动的新高潮。 [12]  2015年05月,零钱用户突破3亿。 [12]  2016年01月,微信支付接入线下门店超30万家。 [13]  2016年08月8日,提出“无现金生活”理念,打造全球首个移动支付节日“无现金日”,倡导低碳、高效的生活方式。 [14]  2018年6月29日,微信支付与米其林指南在广州宣布达成战略合作。 [5]  2018年10月1日起,微信香港钱包正式为香港用户提供内地移动支付服务。用户于内地商户消费时,微信香港钱包会将所需支付的人民币金额,自动换算为对应的港币金额。服务推广期间,用户使用微信香港钱包在内地商户消费,无需支付手续费。 [15]  2019年10月,微信支付钱包入口上线银行储蓄(仅部分用户可见)服务,点击银行储蓄可跳转至工商银行存款产品。用户同意“工商银行定存相关协议”可免费开通工商银行存款账户,选择存入存款,三年期利率3.85%,随时可取,并且不需要跳转到工商银行就可以操作。 [16]  2019年5月,尼泊尔中央银行出台一项命令:在尼境内使用支付宝支付、微信支付及跨境POS机等国际支付系统(获得尼官方授权的除外)的行为是非法的,有关人员将会根据有关法令受到惩处。2020年2月上旬,微信支付取得了尼泊尔央行的运营牌照。 [6] 
收起全文
精华内容
下载资源
问答
  • h5微信支付完整版
  • 课程讲解了Unity如何接入微信登录 微信分享 微信支付 支付宝支付
  • 支付宝支付微信支付

    2018-01-08 11:56:07
    支付宝 微信 支付demo springBoot 支付宝 微信 支付demo springBoot 支付宝 微信 支付demo springBoot
  • Asp微信支付接口V5微信支付接口配置: 请打开lib/wx_config.asp 文件,根据说明配置自己的微信支付参数即可。
  • 哪些年微信支付遇到的坑,蛋蛋的忧伤。。。 本人小白一枚,第一次写微信支付“湿鞋”的经历。。。话说微信这个“坑”啊!!! 好了进入正题:先说一下我遇到的坑!!(发现一个很让人无奈的事情,无论支付缺少啥...

    哪些年微信支付遇到的坑,蛋蛋的忧伤。。。

    本人小白一枚,第一次写微信支付“湿鞋”的经历。。。话说微信这个“坑”啊!!!

    好了进入正题:先说一下我遇到的坑!!(发现一个很让人无奈的事情,无论支付缺少啥参数,反正他都提示“缺少total_fee”)

    缺少“total_fee”的可能性以下几点(仅限我个人遇到过的):

    1.订单编号重复

    一个订单编号只能用于一个订单(额。。相当于唯一标识),如果重复使用一个订单编号,微信是不会给你生成预支付id的,没有预支付id就会报错。。。(自己干过的蠢事。。接到一个需求,说是要分期支付,结果我支付完第一次,要支付第二次的时候给我提示报错,然后我搞了N个小时,最后才知道,是因为订单编号重复了!!!!唉,默默流下了没技术的眼泪。。)

    2.订单编号为空

    有可能你一个不注意,写错订单编号了,然后你就会奇迹的发现,哇!报错了!!

    3.金额为“Null”或者为“0”

    微信支付的时候,最起码也要有一分钱吧。。如果你金额为“Null”或者为“0”的话百分百支付失败(别问我为啥,我也不知道,反正支付不成功就对了),微信有一个默认配置转换金额,比如 0.01 == 10 这是转换后的比例(话说我第一次看见的时候以为我是支付了十块钱,后来才知道。。。咳咳!!)

    4.AppID或者AppSecret不对

    对比你输入的AppID和你微信公众平台的AppID,然后再看一下你的AppSecret生成的Key是否一致(这个一马虎就容易搞错。。千万注意!!),话说微信有一个接口测试工具:https://pay.weixin.qq.com/wiki/tools/signverify/

    5.预支付id

    如果预支付ID为空的话,也会报缺少“total_fee”。。。预支付id为空,有三种情况

    (1)金额为空

    (2)订单编号重复

    (3)订单编号为空

    以上是我遇到过的坑。。。虽然第一次改的时候挺痛苦的(简直痛不欲生)。。但是总体来说还是感到欣慰的,哈哈,欢迎各位大佬在留言里评论(注!以上仅代表个人看法)。

    展开全文
  • 微信支付-支付结果通知接收

    万次阅读 多人点赞 2017-06-22 14:18:43
    微信支付-支付结果通知接收最近在做微信支付功能在微信成功后,微信通过异步方式返回支付结果是遇到了问题:参数接收不到。后来通过查阅资料才将问题解决,现在将解决方法分享一下。官方文档解释如上图所示:通过...

    微信支付-支付结果通知接收

    最近在做微信支付功能在微信成功后,微信通过异步方式返回支付结果是遇到了问题:参数接收不到。后来通过查阅资料才将问题解决,现在将解决方法分享一下。

    ###官方文档解释
    这里写图片描述

    如上图所示:通过微信支付时要先在微信支付系统生成预付订单,然后才能在前台发起支付请求。生成预付订单时会向微信支付系统传递一个参数:notify_url。下面是该参数的解释:

    这里写图片描述

    微信对这个回调路径没有特殊要求,不需要授权目录下,也不需要在同一个域名下,端口也没要求。

    支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。
    对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)

    注意:微信调用notify_url时不会携带参数,所以说商户后台系统不能直接获得微信返回的支付信息,返回信息是以数据流的方式返回的,必须先将流信息转化成XML形式才能获得支付信息。微信返回的支付信息如下所示:

    <xml>
      <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
      <attach><![CDATA[支付测试]]></attach>
      <bank_type><![CDATA[CFT]]></bank_type>
      <fee_type><![CDATA[CNY]]></fee_type>
      <is_subscribe><![CDATA[Y]]></is_subscribe>
      <mch_id><![CDATA[10000100]]></mch_id>
      <nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
      <openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
      <out_trade_no><![CDATA[1409811653]]></out_trade_no>
      <result_code><![CDATA[SUCCESS]]></result_code>
      <return_code><![CDATA[SUCCESS]]></return_code>
      <sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
      <sub_mch_id><![CDATA[10000100]]></sub_mch_id>
      <time_end><![CDATA[20140903131540]]></time_end>
      <total_fee>1</total_fee>
      <trade_type><![CDATA[JSAPI]]></trade_type>
      <transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
    </xml> 
    

    具体含义请参照官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7

    ###实现方式

    public String getWeChatPayReturn(HttpServletRequest request){
    	try {
                InputStream inStream = request.getInputStream();
                int _buffer_size = 1024;
                if (inStream != null) {
                    ByteArrayOutputStream outStream = new ByteArrayOutputStream();
                    byte[] tempBytes = new byte[_buffer_size];
                    int count = -1;
                    while ((count = inStream.read(tempBytes, 0, _buffer_size)) != -1) {
                        outStream.write(tempBytes, 0, count);
                    }
                    tempBytes = null;
                    outStream.flush();
                    //将流转换成字符串
                    String result = new String(outStream.toByteArray(), "UTF-8");
                    //将字符串解析成XML
                    Document doc = DocumentHelper.parseText(result);
                    //将XML格式转化成MAP格式数据
                    Map<String, Object> resultMap = XmlMapHandle.Dom2Map(doc);
                    //后续具体自己实现
                }
                //通知微信支付系统接收到信息
    	    return "<xml><return_code><![CDATA[SUCCESS]]></return_code>
    				      <return_msg><![CDATA[OK]]></return_msg>
    				 </xml>";
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            //如果失败返回错误,微信会再次发送支付信息
            return "fail";
    }
    

    通过上面的操作,应该不会有太大的问题了。

    展开全文
  • 现阶段微信火的厉害,所以相应的关于微信的开发需求也就多了起来,这个系列我们就来谈谈微信支付的开发,本文是第一篇,微信支付URL配置
  • 微信支付怎么能调起来,怎么就能进行微信支付了?支付完成回调怎么处理,里面有一份我写的微信支付原理文档,文档中的截图非常详细,下载这个觉对可以让你从0掌握微信支付
  • 微信支付接口demo

    千次下载 热门讨论 2014-04-03 22:27:27
    最近在最微信支付对接微商城,顺便把文档发出来,供给大家分享学习,包含微信支付详细文档,java、.net、php三种语言的demo
  • 1、微信支付功能 2、拿过去就可以运行,不能运行的退积分,个人整理了好几天,按照你的微信支付的配置到我的MPConfigUtils.java里面,拿过去就可以支付。 3、相关的工具类都在里面这是一个完成的project
  • 微信支付SDK准备 下载sdk 点击进入sdk下载页面 解压可看到 文件说明 文件名 说明 备注 IWXPayDomain 微信定义的接口,需要我们自己实现,主要的作用就是多域名容灾自动切换 WXPayConfig中定义了此接口 ...
  • 微信支付

    千次阅读 2016-10-10 11:32:37
    微信支付 问题: curl出错,错误码:6 提示我们在WxApi.Api.php:565行 这一行是我们微信抛出异常的代码 查看我们的xml数据是否完整 问题出现在: CURLE_COUL DNT_RESOLVE_HOST(6) 无法解析主机 由于DNS...

    微信支付

    问题:

    curl出错,错误码:6

    提示我们在WxApi.Api.php:565行

    这一行是我们微信抛出异常的代码

    查看我们的xml数据是否完整


    问题出现在:

    CURLE_COUL DNT_RESOLVE_HOST(6)
    无法解析主机

    由于DNS无法解析微信的域名,我们可以检查自己的DNS或者我们在本地强制解析

    解决办法:

    在linux环境下

    vi etc/hosts

    添加下面内容
    101.227.143.34 open.weixin.qq.com
    101.226.90.149 api.mch.weixin.qq.com
    101.226.90.58 api.weixin.qq.com


    展开全文
  • 微信开发 微信支付 公众号支付 扫码支付
  • JSAPI微信支付 (需要在公众号后台配置一下,paydatac变量需要后台返回 微信签名之类的) if (typeof WeixinJSBridge == undefined) { if (document.addEventListener) { document.addEventListener('...
  • 微信支付微信支付之 Native 支付

    千次阅读 2019-07-05 16:08:03
      Native支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。   详情见开发文档。 前期准备   注册...

    概述

      Native支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。详情见开发文档

    前期准备

    1. 注册微信支付商户号,获取商户号 mch_id、key;
    2. 申请微信认证的服务号、政府或媒体类订阅号、小程序、APP、企业微信其中之一,并与商户号绑定。获取 appid。

    开发步骤

    Native支付可分为两种模式,商户根据支付场景选择相应模式。本文仅介绍模式二。

    业务流程时序图

    原生支付模式二时序图

    业务流程说明:

    (1)商户后台系统根据用户选购的商品生成订单。
    (2)用户确认支付后调用微信支付【统一下单API】生成预支付交易;
    (3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。
    (4)商户后台系统根据返回的code_url生成二维码。
    (5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。
    (6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。
    (7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。
    (8)微信支付系统根据用户授权完成支付交易。
    (9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。
    (10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。
    (11)未收到支付通知的情况,商户后台系统调用【查询订单API】。
    (12)商户确认订单已支付后给用户发货。

    统一下单

    SDK

    API 详见统一下单API
    下载官方 SDK ,或通过 maven 获取依赖。推荐使用后者。

    <!-- wxpay-sdk -->
    <dependency>
        <groupId>com.github.wxpay</groupId>
        <artifactId>wxpay-sdk</artifactId>
        <version>0.0.3</version>
    </dependency>
    

    SDK 中集成了一个 WXPayConfig.java 的接口,我们需要写一个实现类,存放配置信息。

    public class WXPayConfigImpl implements WXPayConfig {
        // 设置证书,没有的话注释掉
        // private byte[] certData;
        // public WXPayConfigImpl() throws Exception {
        //    String certPath = "/path/to/apiclient_cert.p12";
        //    File file = new File(certPath);
        //    InputStream certStream = new FileInputStream(file);
        //    this.certData = new byte[(int) file.length()];
        //    certStream.read(this.certData);
        //    certStream.close();
        // }
        // set appid
        public static void setAppId(String appId) {
            WXPayConfigImpl.appId = "";
        }
        // set mch_id
        public static void setMchId(String mchId) {
            WXPayConfigImpl.mchId = "";
        }
        // set key
        public static void setKey(String key) {
            WXPayConfigImpl.key = "";
        }
    
        public InputStream getCertStream() {
            ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
            return certBis;
        }
        // 异步通知地址
        public String getNotifyUrl() {
            return "http://www.xxx.com/wxNotify";
        }
    
        public int getHttpConnectTimeoutMs() {
            return 8000;
        }
    
        public int getHttpReadTimeoutMs() {
            return 10000;
        }
    
    //    IWXPayDomain getWXPayDomain() {
    //        return null;
    //    }
    }
    

    获取 code_url

    核心代码如下:

    public class WXPayService {
        /**
         * 微信扫码下单 native
         * @param outTradeNo
         * @param totalFee
         * @param body
         * @param productId
         * @param attach 自定义参数,通知中原样返回。
         * @return
         * @throws Exception
         */
        public static String wxUnifiedOrder(String outTradeNo, 
                                            String totalFee, 
                                            String body,
                                            String productId, 
                                            String attach) throws Exception {
            WXPayConfigImpl config = null;
            WXPay wxpay = null;
            config = new WXPayConfigImpl();
            // 异步通知地址
            String notifyUrl = config.getNotifyUrl();
            // 使用沙箱环境
            // wxpay = new WXPay(config, WXPayConstants.SignType.MD5, true);
            // 默认使用MD5,不使用沙箱环境
            wxpay = new WXPay(config); 
            Map<String, String> data = new HashMap<String, String>();
            // 商品描述
            data.put("body", body); 
            // 商户订单号
            data.put("out_trade_no", outTradeNo); 
            // 标价金额
            data.put("total_fee", totalFee); 
            // 产品id
            data.put("product_id", productId);
            // 终端IP:调用微信支付API的机器IP
            data.put("spbill_create_ip", "221.12.4.52"); 
            // 交易类型:此处指定为扫码支付
            data.put("trade_type", "NATIVE"); 
            // 异步通知 url
            data.put("notify_url", notifyUrl);
            // 自定义参数
            data.put("attach", attach);
            Map<String, String> resp = null;
            try {
                resp = wxpay.unifiedOrder(data);
            } catch (Exception e) {
                e.printStackTrace();
            }
            String codeUrl = resp.get("code_url");
            System.out.println("============= 微信返回结果 =============");
            System.out.println(resp);
            return codeUrl;
        }
    }
    

    将获取得到的 codeUrl 通过第三方库转为二维码,供用户扫码。

    异步通知

    异步通知的请求路径在统一下单接口中设置。

    @RequestMapping("wxNotify")
    public class WXController {
        public void notify(HttpServletRequest request, HttpServletResponse response) throws Exception {
            // 拿到微信回调信息
            InputStream inputStream = request.getInputStream();
            BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuffer sb = new StringBuffer();
            // 将微信回调信息转为字符串
            String line;
            while ((line = in.readLine()) != null) {
                sb.append(line);
            }
            in.close();
            inputStream.close();
            String strXml = sb.toString();
            WXPayConfigImpl config = new WXPayConfigImpl();
            Map<String, String> map = WXPayUtil.xmlToMap(strXml);
            System.out.println(strXml);
    
            // 获取业务信息
            String outTradeNo = map.get("out_trade_no");
            String totalFee = map.get("total_fee");
            String appId = map.get("appid");
            String mchId = map.get("mch_id");
            String transactionId = map.get("transaction_id");
            String resultCode = map.get("result_code");
            String attach = map.get("attach");
            
            // 验签
            boolean signatureValid = WXPayUtil.isSignatureValid(strXml, config.getKey());
            // todo 这里写代码
            /* 实际验证过程建议商户务必添加以下校验:
                1、需要验证该通知数据中的 out_trade_no 是否为商户系统中创建的订单号
                2、判断 total_fee 是否确实为该订单的实际金额(即商户订单创建时的金额)
            */
            PrintWriter writer = response.getWriter();
            // 判断签名是否正确
            if (signatureValid) {
                // 判断回调信息是否成功
                if ("SUCCESS".equals(map.get("result_code"))) {
                    // todo 根据不同业务类型处理不同业务
                    
                    // 通知微信订单处理成功
                    String noticeStr = setXML("SUCCESS", "");
                    writer.write(noticeStr);
                    writer.flush();
                }
            } else {
                // 通知微信订单处理失败
                String noticeStr = setXML("FAIL", "");
                writer.write(noticeStr);
                writer.flush();
            }
        }
    
        private static String setXML(String return_code, String return_msg) {
            return "<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>";
        }
    }
    

    沙箱测试

      编写完代码,我们就要开始沙箱测试了。
      微信的流程是,写完代码之后,必须使用沙箱测试,对测试结果进行验收,验收通过才可以使用正式的微信商户号,否则会返回“商户无此接口权限”。
      沙箱验收过程可查看支付验收指引

    1. 使用正式的 mch_id,商户key 来获取沙箱密钥 sandbox_signkey。传送门
      沙箱密钥获取

    2. 通过调用接口https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey,获取验签密钥。请求方式为 POST,发送 json 字符串。可以使用 Postman 调用此接口,获取验签密钥。
      通过Postman获取验签密钥
      返回的结果如下

    <xml>
      <return_code><![CDATA[SUCCESS]]></return_code>
      <retmsg><![CDATA[ALSDFJASLDFKJASLDFKJASDLFJ]]></retmsg>
      <retcode><![CDATA[0]]></retcode>
    </xml>
    
    1. 使用沙箱环境
    // 使用沙箱环境
    wxpay = new WXPay(config, WXPayConstants.SignType.MD5, true);
    
    1. 测试结果
      • 微信的沙箱测试 不会 发送异步通知,等待5s左右后,会在控制台打印出模拟异步通知的结果。若无通知,调用 查询订单接口进行查询。
      • 必须按照微信的支付验收用例来设置金额,否则会返回错误信息,“金额不合法”。
      • 各项支付验收用例测试结束后,按照要求调用【查询订单】进行查询,查询结束后验收结束。
      • 在官方微信号查询验收结果。验收通过后,即可使用正式账号。

    查询订单

    controller 层

    public class WXController {
        public void orderQuery(String key, String appid, String mchId, String outTradeNo, String transactionId) throws Exception {
            WXPayConfigImpl.setKey(key);
            WXPayConfigImpl.setAppId(appid);
            WXPayConfigImpl.setMchId(mchId);
            WXPayConfigImpl config = new WXPayConfigImpl();
            
            Map<String, String> map = WXPayService.orderQuery(outTradeNo, transactionId);
            String attach = map.get("attach");
            String appId = map.get("appid");
            String totalFee = map.get("total_fee");
            String strXml = WXPayUtil.mapToXml(map);
            String resultCode = map.get("result_code");
            transactionId = map.get("transaction_id");
            System.out.println("strXml: " + strXml);
        }
    }
    

    service 层

        /**
         * 微信订单查询
         *
         * @param outTradeNo
         * @param transactionId
         * @return
         * @throws Exception
         */
        public static Map<String, String> orderQuery(String outTradeNo, String transactionId) throws Exception {
            WXPayConfigImpl config = null;
            WXPay wxpay = null;
            config = new WXPayConfigImpl();
            // wxpay = new WXPay(config, WXPayConstants.SignType.MD5, true); // 使用沙箱
            wxpay = new WXPay(config);// 默认使用MD5,不使用沙箱环境
    
            Map<String, String> data = new HashMap<String, String>();
            if (!StringUtils.isEmpty(outTradeNo)) {
                data.put("out_trade_no", outTradeNo);
            }
            if (!StringUtils.isEmpty(transactionId)) {
                data.put("transaction_id", transactionId);
            }
            return wxpay.orderQuery(data);
        }
    

    遇到的问题

    1. appid 与商户号绑定:
        问题描述:调用微信统一下单接口时,返回失败。错误信息为:appid 与 mch_id 不匹配。
        原因分析:appid 与 mch_id 不匹配,在 mch_id 没错的情况下,自然是 appid 出了问题。如果 appid 不合法,或者没有与 mch_id 绑定,就会报这个错。在微信商户账号界面绑定一个 appid 到 mch_id 下。
        解决方法:在微信商户账号界面绑定一个 appid 到 mch_id 下。“申请微信认证的服务号、政府或媒体类订阅号、小程序、APP、企业微信其中之一,并与商户号绑定。”
    2. 商户订单号重复:
        问题描述:在微信支付页面,用户获取了二维码之后并没有付款,或是关闭了页面,或是暂时不想支付等原因,这很常见。此时再次对同一订单进行微信支付,统一下单接口可能会报“INVALID_REQUEST 商户订单号重复”的错误。
        原因分析:同一订单号调用微信的统一下单接口时,若其他参数与首次不同,则微信认为是两个订单。两个订单使用了同一个订单号,这是不被允许的。
        解决方法:订单重入时,要求参数值与原请求一致,请确认参数问题。包括 attach 这种商户自定义参数,都必须一致。

    [end]

    展开全文
  • Java调用微信支付

    万次阅读 多人点赞 2020-06-17 02:04:46
    Java 使用微信支付 一. 准备工作 1.
  • 微信支付JS-SDK调用微信支付接口 JAVA
  • 公众号支付是指用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块来完成支付。 适用于在公众号、朋友圈、聊天窗口等微信内完成支付的场景。 APP支付是指商户通过在...
  • 微信小程序-JAVA实现微信支付功能(微信支付2.0) 一.前言  本博客主要介绍JAVA后台与微信小程序(UNI-APP或者原生微信小程序)的微信支付的实现,如果是APP或者H5的开发暂时不支持,具体应用场景如下图: 不同...
  • SP 扫码支付是用的最普遍的一种接口,所有 ASP 的网站都可以整合使用,微信扫码支付结果会实时在微信中回调显示...asp微信支付接口代码纯 ASP 代码,完全开源,代码易于整合,只需要简单几步即可整合在各类网站,微信支
  • JS-SDK调用微信支付接口 JAVA版.流程是先注入权限验证config配置再调微信支付接口.请务必看清楚每个需要传的参数我后面写的注释.别问些什么APPID错误MCHID错误的问题
  • 手把手教你--JAVA微信支付(公众号支付JSAPI)

    万次阅读 多人点赞 2018-03-07 17:38:53
    写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了。本以为网上的微信开发教程会和...
  • 微信支付-vue 实现微信支付-前端篇

    千次阅读 2019-12-18 22:35:43
    微信支付系列文章 微信支付-java后端实现 微信支付-vue 前端实现 vue demo: 下载地址文章底部 技术栈 vue vue-cli weixin-js-sdk (微信jsSdk) 微信支付术语 微信jsSdk需要提前初始化完成 初始化加密参数需要...
  • spring+mybatis接入微信支付,支付宝支付(包含微信公众号支付和H5支付),可以作为独立的模块使用也可以作为公共的支付接口
  • 微信支付-微信app支付java服务器端代码 实现功能:微信支付 支付查询 申请退款 退款查询 微信服务器端异步支付结果通知 参考博文:http://blog.csdn.net/fengshizty/article/details/53199356
  • 微信接口自定义菜单在线客服微信支付
  • ;微信支付的形式 App微信支付 微信扫码支付 微信公众平台支付;Java微信扫码支付实例 准备工作 开通微信公众号再开通微信公众号里的支付功能;知识点二java实现支付宝支付

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,522
精华内容 58,608
关键字:

微信支付