当前位置: 首页 > news >正文

浅析微信支付:支付验收示例和验收指引

本文是【浅析微信支付】系列文章的第十一篇,主要讲解支付验收示例和验收指引。


浅析微信支付系列已经更新十一篇了哟~,没有看过的朋友们可以看一下。

浅析微信支付:如何使用沙箱环境测试

浅析微信支付:下载对账单和资金账单

浅析微信支付:申请退款、退款回调接口、查询退款

浅析微信支付:查询订单和关闭订单

上一篇文章我们讲了 如何使用沙箱环境测试,文中有讲到沙箱环境不仅可以用来当开发环境使用,及时返回接口数据,还能当作微信支付的 验收示例,官方指出,为了安全考虑希望所有商户都接入验收,以下我们会结合官方文档为大家讲解如何接入及相关的验收用例。

验收指引

官方文档地址:

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_1

本文阅读对象为:商户自有系统(包括但不限于:在线购物平台、人工收银系统、自动化智能收银系统、APP应用等)负责微信支付功能验收的测试及开发人员。

为保证商户接入质量,提升交易安全及用户体验,微信支付的合作服务商在正式上线交易前,必须先根据本文指引完成验收。验收完成后,服务商在验收公众平台(微信号:WXPayAssist)提交验收通过申请,审核通过后,才能开通相应的支付权限(如:刷卡支付)。否则,请根据审核驳回提示,重新完成验收。

注:仿真测试环境中的商户号(父子商户号)需使用真实商户号。

验收流程

商户接入验收流程

如图,商户在收到微信支付审核通过的邮件后,即可用邮件中提供的开发者信息,启动测试验收工作。验收开始后,验收负责人可按照下表步骤操作:

验收步骤

以上为验收的基本步骤,首先,我们需要接入 沙箱环境,不知道的小伙伴可以查看我的上一篇文章,有详细描述,这里就不细说了。

验收测试用例

如果已经接入沙箱环境,我们就可以开始选择微信官方对应的验收用例进行测试了,官方提供了四种验收用例,如下:

请根据您需要开通的功能来选择相应的验收用例进行测试:

◆ 刷卡支付验收用例
◆ 扫码支付验收用例
◆ 公众号支付验收用例
◆ 免充值券验收用例

这里我们以 公众号支付验收用例 来做例子,下面为官方的验收流程:
公众号支付验收用例

流程我们已经知道了,重点来了,我们需要下载验收用例,下面是地址:

https://pay.weixin.qq.com/wiki/doc/api/download/jsapi_yanshou.zip

首先,请关注上面图片中的二维码,如果遇到问题,可以查看官方的异常解答;下载验收用例后,我们会得到 4 个用例文档,需要根据文档中的描述来进行验收,支付成功支付失败接口是必须验收的。

如何验收?

简单讲,验收分为以下几个步骤:

  1. 获取sandbox_signkey
  2. 修改正常接口地址为沙箱环境地址,增加 sandboxnew 路径
  3. 根据用例集标题中的金额传入参数,调用相应的接口
  4. 查看返回值与用例集中是否一致,如果一致则成功,否则失败

需要注意的是,一定要根据用例集中的标题传入金额,比如支付成功用例集需要传入金额1.01元,那我们就必须传入这个金额,传入其他金额会导致失败。

以下为示例代码:

public static void main(String[] args) throws Exception {
    System.out.println("--------------->");

    // 沙箱环境测试
    WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance(), true, true);

    Map<String, String> resultMap = wxPay.unifiedOrder(notify_url, openid, body, out_trade_no, 
    "1.01", spbill_create_ip, goods_tag, detail,
            timeStart, timeExpire);


    System.out.println(resultMap);

    /*Map<String, String> resultMap = wxPay.refund(null, "10000", "10001", "1.01", "0.01", "测试微信退款");
    System.out.println(WXPayUtil.isSignatureValid(resultMap, WXPayConstants.API_KEY));*/


    System.out.println("<---------------");
}

上面代码中是作者封装好的sdk方法,开启沙箱环境只需要实例化对象时传入参数即可:

// 沙箱环境测试
WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance(), true, true);

// 正式环境
WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance());

具体源码见下面文末github地址。

结语

给小伙伴们分享点验收的经验,首先,一定要先看一遍官方文档,然后跟着官方文档一步步的操作,对于官方所讲的关键信息,必须仔细检查,比如上面所说的金额,还有官方标红的一些注释,本文主要目的是给大家一个分享和参考,比较方便的是作者已经封装好的sdk中有相关的 沙箱环境 切换示例,不需要大家再分析具体实现,关注如何应用即可。

如果小伙伴有遇到解决不了的问题,可以关注作者微信公众号,加入讨论群中发出疑问,和小伙伴们一起解决哦~

预告:下一篇文章 (余额提现)企业付款到微信用户零钱账户,敬请期待!!!

​如果想要提前一览源码的小伙伴,可以先看看我的 github,地址如下:

​https://github.com/YClimb/wxpay-sdk/blob/master/README.md ​

关注作者微信公众号,点击下方讨论群,扫码即可加入微信支付讨论群与小伙伴一起探讨哦~

到此本文就结束了,关注公众号查看更多推送!!!


关注我的公众号


转载于:https://www.cnblogs.com/yclimb/p/9956482.html

相关文章:

  • 网络中IP地址划分
  • 链表六:二叉搜索树与双向链表
  • 新一代海量数据架构分析:NoHadoop
  • chapter1.3、JS的分支语法
  • 企业邮件系统多域通讯录共享方案
  • 取证分析:在通信过程中不关心目标的子网掩码
  • 系统维护和tcp连接
  • winform 如何控制输入法
  • DoS***_详解(转载)
  • 自定义序列化技术2:变长数组的实现
  • 2,8,10,16进制转换
  • Hadoop:Hadoop的常见启动错误(有新问题会持续更新)
  • loj 1030概率dp
  • IoT:利尔达的半壁江山
  • 64位 windows10,安装配置MYSQL8.0.13
  • __proto__ 和 prototype的关系
  • 【Leetcode】104. 二叉树的最大深度
  • echarts花样作死的坑
  • Elasticsearch 参考指南(升级前重新索引)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • go语言学习初探(一)
  • HTML5新特性总结
  • js ES6 求数组的交集,并集,还有差集
  • JS基础之数据类型、对象、原型、原型链、继承
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • orm2 中文文档 3.1 模型属性
  • Shell编程
  • vue.js框架原理浅析
  • 复杂数据处理
  • 工程优化暨babel升级小记
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 移动端解决方案学习记录
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​ArcGIS Pro 如何批量删除字段
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ![CDATA[ ]] 是什么东东
  • ###STL(标准模板库)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (42)STM32——LCD显示屏实验笔记
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (五)网络优化与超参数选择--九五小庞
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .net core Swagger 过滤部分Api
  • .net core 连接数据库,通过数据库生成Modell
  • .Net IOC框架入门之一 Unity
  • .net 验证控件和javaScript的冲突问题
  • .NET上SQLite的连接
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .NET业务框架的构建
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解