微信扫码支付

微信公众号 扫码支付 模式二 demo

雨燕双飞 提交于 2020-04-08 03:53:42
扫码支付 本文附有代码,在下方,如果不熟悉场景的可以看看下面的场景介绍 场景介绍 官网介绍地址: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 用户扫描商户展示在各种场景的二维码进行支付。 步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码(如图6.1),展示在各种场景,用于用户扫描购买。 步骤2:用户使用微信“扫一扫”(如图6.2)扫描二维码后,获取商品支付信息,引导用户完成支付(如图6.3)。 图6.1 支付二维码 图6.2 打开微信扫一扫二维码 图6.3 确认支付页面 步骤(3):用户确认支付,输入支付密码(如图6.4)。 步骤(4):支付完成后会提示用户支付成功(如图6.5),商户后台得到支付成功的通知,然后进行发货处理。 图6.4 用户确认支付,输入密码 图6.5 支付成功提示 模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。 业务流程时序图 图6.9 原生支付模式二时序图 业务流程说明: (1)商户后台系统根据用户选购的商品生成订单。 (2

微信扫码支付功能实现(java版)

大憨熊 提交于 2020-03-01 05:04:20
微信支付接入方式总共分为四种:公众号支付、APP支付、扫码支付和刷卡支付。其中扫码支付最符合公司当前业务场景,扫码支付有两种接入方式(请参考 扫码支付开发步骤 ),本文选择模式二方式接入扫码支付功能。   模式二接入方式分为两个步骤:生成二维码图片和编写支付回调接口。下面分别详细阐述这两个步骤: 1、生成二维码图片   二维码图片实际上是对一个预交易的url进行编码而生成的,因此要想得到二维码图片,必须先得到这个预交易的url,消费者扫描二维码图片后打开的网址链接就是这个url。那如何得到这个url呢?调用微信支付 统一下单API 。调用该API的各参数这里不赘述了,文档写的很详细。下面先贴上示例代码: /** * 获取微信支付二维码图片 * @param userId 当前用户ID,用来当作商户订单号,防止重复支付 * @return */ public BufferedImage getWeChatPaymentImage(Integer userId) { HashMap<String, String> paramMap = new HashMap<>(); paramMap.put("appid", "xxxxxxxxxxxx"); //appid:每个公众号都有一个appid paramMap.put("mch_id", "11111111111"); //商户号

微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)

本小妞迷上赌 提交于 2020-02-12 04:53:04
前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了不少技术文章,却发现都只是比较粗略的写他们是怎么开发接入的,并没有解决我遇到的问题...,唉,有时候真心的感觉‘只能靠自己’。本文就是想把自己遇到的问题及解决办法写出来,让做这方面开发的朋友有所帮助!   开发之前,先查看官方 【扫码支付】开发文档 ,扫码支付分为以下两种模式:   △ 模式一:    遇到的问题:第一次扫描二维码还能正常扫描,未付款再次扫描会提示:ok 或 请求商户信息超时HttpCode非200 ——此问题尝试通过各种途径寻找解决办法都无果,在这里希望有知道朋友能给与解答,谢谢!   △ 模式二:    注意: 不可以直接用商城的订单号作为交易订单号(out_trade_no),否则再次生成微信扫码支付二维码时,接口会提示: 商户订单号重复 ,无法重新生成。   那么酱紫问题来了,应该怎样设置交易订单号,还能保证后面通过接口查询微信商户平台里的相应订单信息或实现对账?可行的办法是:扫码之前的统一下单接口,out_trade_no不要传入商城订单系统的订单号,而是重新生成一个新的唯一流水;再增加一个订单号和微信支付交易订单号(out_trade_no)对应表,如下:

微信支付——扫码支付Native

佐手、 提交于 2019-12-24 06:54:13
1.开通产品。(要实体店拍照) 2.Native支付有两种模式,先介绍第二中模式。 公众号appid,小程序appid均可用,付款后展示的通知消息模板不同,移动应用appid不可。 两种模式主要区别: 模式一:依赖微信商户平台配置的扫码回调连接; 模式二:不依赖配置的扫码回调连接,但是生成的支付二维码有效期2小时,开发简单,两者业务流程有区别, 模式二的二维码只能扫码付款一次; 3.使用模式二开发。 统一下单——获取到code_url——拼接连接生成二维码 请求成功返回示例: { "nonce_str": "8UvmcoZt8OsY5q9m", "device_info": "S-001", "code_url": "weixin://wxpay/bizpayurl?pr=31qxQZu", "appid": "wxdfc5c46e8cee32ca", "sign": "F89ECB58489849D2D6856273383BA1ED", "trade_type": "NATIVE", "return_msg": "OK", "result_code": "SUCCESS", "mch_id": "154571", "return_code": "SUCCESS", "prepay_id": "wx191750353877131886b964d71860975500" } /**

微信扫码支付,扫码支付后,页面刷新

社会主义新天地 提交于 2019-12-05 02:43:19
//微信扫码支付 @At @Ok("json") @POST @AdaptBy(type = JsonAdaptor.class) public Object generatorOnce(HttpServletRequest req,@Param("paymentId")Integer paymentId, @Param("title")String title) throws Exception { String openid = Webs.getOpenidInSession(req, "344"); ShopClientModel client = Webs.getSCInSession(req); MapBean mb = new MapBean(); //订单信息 PaymentModel paymentModel = paymentService.findByCnd(Cnd.where("id", "=", paymentId)); if (paymentModel.getPayStatus() != null && paymentModel.getPayStatus() != 0) { //判断是否未支付 Code.error(mb, "不能重复支付"); return mb; } int paymentType = 0; //判断是活动报名还是报读课程

Java微信扫码支付

柔情痞子 提交于 2019-11-26 19:39:57
前言:让我用Java写个微信扫码支付,身为小白,网上搜了好多文章,终于找到一个看得明白的, 链接 。表示人家讲的够详细了,现在自己要是实现一个,我觉得吧,可能入手比较乱。其实后来发现,代码都是按照那个流程图写的,写代码是用来实现功能的,当然要按照功能分析别人的代码,否则都不知道人家写来干什么的。别人的东西不一定都好,就要给他改改,改的好才是真好,,哈哈。下面看内容!!! 一、微信扫码支付内容 1. 文档: 官方文档 : 微信扫码实际应用示例 微信支付模式二的时序流程图 : 所有功能实现围绕这个流程图来写 统一下单API : 提交给微信生成订单 : 有xml格式参数的举例 支付结果API : 微信返回支付结果参数说明,有xml格式参数的举例 2.选择: 代码工具与方式---- 用的 eclipse 的插件版: STS ,用 servlet 简单实现。 入手---- 实现微信扫码支付的功能,先从 模式二的时序流程图 入手。 后台: 微信商户平台 - --- 申请成为微信商户后能登陆的,后台查看订单情况。 模式: 模式二 ---- 模式二的时序流程图 ,模式二相比模式一更简单 ,因为模式二不需要自己生成二维码信息,只是接收微信返回的信息。 交易类型: 扫码支付 ---- 实现的是扫码支付,如果是公众号支付、app支付和刷卡支付,请绕行。 穿透工具: 花生壳 ---- 因为公司已经买了

PHP 微信扫码支付

时光毁灭记忆、已成空白 提交于 2019-11-26 01:50:27
$count = $count*100; vendor('WeixinPC.WxPayApi');//引入 vendor('WeixinPC.Notify');//引入 vendor('WeixinPC.WxPayNativePay');//引入 $notify = new \NativePay(); $input = new \WxPayUnifiedOrder(); //调用统一下单类 $input->SetBody($data['title']); $input->SetAttach($data['title']); $input->SetOut_trade_no($_POST['number']); $input->SetTotal_fee($count); //$input->SetTotal_fee($count); //$input->SetTotal_fee("$count"); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 7200)); //$input->SetGoods_tag("test"); $ss=S('config'); $input->SetNotify_url("http://".$_SERVER['SERVER_NAME