精华内容
下载资源
问答
  • PHP公众号商家收银台微信扫码付款源码     微信公众号程序,必须微信认证服务号,微信商家     客户扫码,打开商家定义页面,输入金额和对应定义信息,提交微信,实现快速付款     ...

    介绍:

    PHP公众号商家收银台微信扫码付款源码
        微信公众号程序,必须微信认证服务号,微信商家
        客户扫码,打开商家定义页面,输入金额和对应定义信息,提交微信,实现快速付款
        支持创建多个店铺,各个店铺自定义不同自定义表单。通过自定义表单实现订单自定义明细
        通过店铺自定义表单可以轻松建立,快捷收款、微信收银台、面对面收款、商品预约预订等扫码微信,
        提升客户服务体验,商户快速获得精准订单数据,实现账款统计。
        通过打开自定义的表单页面,输入自定义的指定信息,可以实现订单收款。
        完全可自定义的表单字段,支持单行文本,多行文本,单选,多选,下拉选择,上传图片,时间。
        收款金额可设置为固定金额或输入金额。


    网盘下载地址:

    http://kekewl.cc/bJjausxHpGd0


    图片:


    展开全文
  • 下面子恒老师来详细讲讲…一、 申请开通微信扫码支付开通微信扫码支付需要单独开通,你只要开通微信微信服务号支付,就可以使用微信扫码支付了。猛击这里,了解《开通微信服务号支付》而微信...

    微信扫码支付是在网页里,
    生成一个支付二维码,
    让用户用微信扫码支付二维码付款的一种方式。

    微信扫码支付是PC电脑端,
    用户非常方便的一种方式,
    如果你的电脑h5网站想要,
    让用户在线付款购买你的产品和服务,
    可以使用微信扫码支付。

    下面子恒老师来详细讲讲…

    微信扫码支付效果

    一、 申请开通微信扫码支付
    开通微信扫码支付并不需要单独开通,
    你只要开通微信微信服务号支付,
    就可以使用微信扫码支付了。

    猛击这里
    了解《开通微信服务号支付

    而微信H5支付,微信小程序支付是需要单独申请开通的。

    二、 微信扫码支付的两种模式
    模式一:开发前,商户必须在商户号后台设置支付回调URL。URL实现的功能:接收用户扫码后微信支付系统回调的productid和openid;

    在子恒老师的《微信商户平台设置支付授权目录
    可以看到扫码支付回调url的设置内容。

    温馨提示:以前设置扫码支付回调url是在微信服务号后台,
    现在已经改到微信商户号平台去设置了。

    模式二:模式二与模式一相比,流程更为简单,不依赖设置的回调支付URL。商户后台系统先调用微信支付的统一下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付。注意:code_url有效期为2小时,过期后扫码不能再发起支付。

    一般来说,
    微信扫码支付开发时使用模式二。

    猛击这里
    观看《 微信扫码支付开发 》视频教程
    展开全文
  • 工具 - 微信扫码付款

    2021-03-28 19:49:19
    微信扫码付款 前提: 已有微信公众号和微信支付商家号 微信支付也就是 前端请求后端,然后后端携带着一些信息(其中回调地址很重要,支付成功后,微信服务器会请求该地址)去请求微信服务器,然后微信支付会生成...

    微信扫码付款

    前提: 已有微信公众号和微信支付商家号
    微信支付也就是 前端请求后端,然后后端携带着一些信息(其中回调地址很重要,支付成功后,微信服务器会请求该地址)去请求微信服务器,然后微信支付会生成预订单,并返回预订单支付地址。

    取到返回地址后,下面有三种方式,具体就看你的选择或者是前端大哥的想法了:

    • 直接返回地址,让前端渲染支付二维码
    • 将其塞到生成的二维码图片中,返回前端图片
    • 将生成的支付二维码图片转换成base64格式,返回前端

    此处为第三种

     		<!--微信支付-->
            <dependency>
                <groupId>com.github.wechatpay-apiv3</groupId>
                <artifactId>wechatpay-apache-httpclient</artifactId>
                <version>0.2.1</version>
            </dependency>
            <!--生成二维码-->
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>javase</artifactId>
                <version>3.3.0</version>
            </dependency>
    
    import cn.hutool.core.codec.Base64;
    import cn.hutool.core.date.DateUtil;
    import cn.hutool.core.img.ImgUtil;
    import cn.hutool.core.io.FileUtil;
    import cn.hutool.core.lang.UUID;
    import cn.hutool.core.util.StrUtil;
    import cn.hutool.crypto.SecureUtil;
    import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
    import cn.hutool.crypto.symmetric.SymmetricCrypto;
    import cn.hutool.extra.qrcode.QrCodeUtil;
    import cn.hutool.extra.qrcode.QrConfig;
    import cn.hutool.json.JSONUtil;
    import com.alibaba.fastjson.JSONObject;
    import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
    import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
    import com.wechat.pay.contrib.apache.httpclient.auth.PrivateKeySigner;
    import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Credentials;
    import com.wechat.pay.contrib.apache.httpclient.auth.WechatPay2Validator;
    import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.util.EntityUtils;
    
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.IOException;
    import java.nio.charset.StandardCharsets;
    import java.security.PrivateKey;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @program: 
     * @description: 微信支付工具
     * 接口文档地址:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_2.shtml
     * @author: 
     * @create: 2021/01/14 17:54
     */
    @Slf4j
    public class WeChatPayUtil {
        /**
         * privateKey:私钥字符串
         */
        public static final String WECHAT_PAY_PRIVATE_KEY = " ";
    
        /**
         * mchId:商户号
         */
        public static final String WECHAT_PAY_MCH_ID = " ";
    
        /**
         * mchSerialNo:商户证书序列号
         */
        public static final String WECHAT_PAY_MCH_SERIAL_NO = " ";
    
        /**
         * apiV3Key:V3秘钥
         */
        public static final String WECHAT_PAY_API_V3_KEY = " ";
        /**
         * appid:appid
         */
        public static final String WECHAT_PAY_APP_ID = " ";
    
        public static Map<String,Object> createOrder() {
            Map<String,Object> returnMap = new HashMap<>(2);
            HttpPost httpPost = new HttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/native");
            //=======================================  添加请求参数 start  =======================================
            Map<String, Object> map = new HashMap<>(8);
            //应用ID 直连商户申请的公众号或移动应用appid。
            map.put("appid", WECHAT_PAY_APP_ID);
            //直连商户号 直连商户的商户号,由微信支付生成并下发。
            map.put("mchid", WECHAT_PAY_MCH_ID);
            //商品描述
            map.put("description", "一杯咖啡");
            //商户订单号 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一
            map.put("out_trade_no", " ");
    
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.MINUTE, 30);
            Date date = calendar.getTime();
            //交易结束时间 订单失效时间// 30分钟 需要String类型
            map.put("time_expire", DateUtil.format(date, "yyyy-MM-dd'T'HH:mm:ssXXX"));
            //附加数据
            map.put("attach", "");
            //通知地址 通知URL必须为直接可访问的URL,不允许携带查询串。
            map.put("notify_url", "");
            Map<String, Object> amountMap = new HashMap<>(2);
            //总金额 订单总金额,单位为分
            amountMap.put("total", "");
            //货币类型
            amountMap.put("currency", "CNY");
            map.put("amount", amountMap);
            //=======================================  添加请求参数 end  =======================================
            StringEntity entity = new StringEntity(JSONUtil.toJsonStr(map), ContentType.APPLICATION_JSON.withCharset(StandardCharsets.UTF_8));
            entity.setContentType("application/json");
            httpPost.setEntity(entity);
            httpPost.setHeader("Accept", "application/json");
            // 加载商户私钥(privateKey:私钥字符串)
            PrivateKey merchantPrivateKey = PemUtil
                    .loadPrivateKey(new ByteArrayInputStream(WECHAT_PAY_PRIVATE_KEY.getBytes(StandardCharsets.UTF_8)));
            // 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3秘钥)
            AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
                    new WechatPay2Credentials(WECHAT_PAY_MCH_ID, new PrivateKeySigner(WECHAT_PAY_MCH_SERIAL_NO, merchantPrivateKey)),
                    WECHAT_PAY_API_V3_KEY.getBytes(StandardCharsets.UTF_8));
            // 初始化httpClient
            HttpClient httpClient = WechatPayHttpClientBuilder.create()
                    .withMerchant(WECHAT_PAY_MCH_ID, WECHAT_PAY_MCH_SERIAL_NO, merchantPrivateKey)
                    .withValidator(new WechatPay2Validator(verifier)).build();
            //完成签名并执行请求
            CloseableHttpResponse response;
            try {
                response = (CloseableHttpResponse) httpClient.execute(httpPost);
            } catch (IOException e) {
                log.error("微信调用失败!", e);
                returnMap.put("result","false");
                returnMap.put("info","服务器错误,请联系系统管理员!");
                return returnMap;
            }
            String payUrl;
            try {
                int statusCode = response.getStatusLine().getStatusCode();
                if (statusCode != 200) {
                    log.info("failed,resp code = " + statusCode + ",return body = " + EntityUtils.toString(response.getEntity()));
                    return null;
                }
                JSONObject dateJSON = JSONObject.parseObject(EntityUtils.toString(response.getEntity()));
                payUrl = dateJSON.getString("code_url");
            } catch (IOException e) {
                log.error("微信返回信息解析错误!", e);
                returnMap.put("result","false");
                returnMap.put("info","服务器错误,请联系系统管理员!");
                return returnMap;
            } finally {
                try {
                    response.close();
                } catch (IOException e) {
                    log.error("微信响应关闭失败!", e);
                }
            }
            //生成base64格式付款码
            QrConfig qrConfig = new QrConfig(300, 300);
            qrConfig.setMargin(3);
            //获取图片路径
            String path;
            if ("linux".equalsIgnoreCase(System.getProperty("os.name"))) {
                path = CopyFileUtil.getJarConfigPath("static/WECHAT.png");
            } else {
                path = "static/WECHAT.png";
            }
            File file = FileUtil.file(path);
            String logo = Base64.encode(file);
            returnMap.put("result","true");
            returnMap.put("info",QrCodeUtil.generateAsBase64(payUrl, qrConfig, ImgUtil.IMAGE_TYPE_PNG, logo));
            return returnMap;
        }
        
    }
    

    接下来就是回调接口的操作了,但微信接口文档中有这样一段话

    3.2.3.【服务端】接收支付结果通知
    步骤说明:当用户完成支付,微信会把相关支付结果将通过异步回调的方式通知商户,商户需要接收处理,并按文档规范返回应答
    注意:

    • 支付结果通知是以POST 方法访问商户设置的通知url,通知的数据以JSON 格式通过请求主体(BODY)传输。通知的数据包括了加密的支付结果详情
    • 加密不能保证通知请求来自微信。微信会对发送给商户的通知进行签名,并将签名值放在通知的HTTP头Wechatpay-Signature。商户应当验证签名,以确认请求来自微信,而不是其他的第三方。签名验证的算法请参考微信支付API v3签名方案
    • 支付通知http应答码为200或204才会当作正常接收,当回调处理异常时,应答的HTTP状态码应为500,或者4xx
    • 商户成功接收到回调通知后应返回成功的http应答码为200或204
    • 同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱
    • 对后台通知交互时,如果微信收到商户的应答不符合规范或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。(通知频率为15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m)

    如果不回调呢?
    建议在每次请求支付时都去启动一个定时任务,时间间隔为预付款订单有效时间。根据订单ID去请求微信服务器,查询是否已付款。

    展开全文
  • 一 功能描述: pc选择商品后生成二维码,用户微信扫码直接支付 备注:红色为后台给前端的接口 1.前端 选择确认商品 2.调后台生成订单接口 (状态未付款) 3.返回订单的详情(订单确认页面 参数:订单号,...

    一  功能描述:    前端选择商品后生成二维码,用户微信扫码支付

     

     

     

      备注: 红色为后台给前端的接口

     

     

     

     

    1.前端 选择确认商品 

     

    2.调后台生成订单接口 (状态未付款)

     

    3.返回订单的详情(订单确认页面  参数:订单号,金额 等)

     

    4.调后台接口生成支付的二维码 获取二维码接口(如果后台配了通信,则前端带上订单号 连上后台websocket,做为支付成功后通知前端。 如果没有轮询带上订单号访问接口查询状态)参数: 订单号 ,金额等

     

    5.手机微信扫码 弹出支付密码框支付

     

    6 .用户支付成功我们后台收到微信官方给的通知。回调接口微信官方调我们后台的接口。如果是本地测试,可以用花生壳映射,不然微信调不到) 发送订单号 处理订单的消息队列 

     

     

    --------------- 如果没有消息队列,直接在回调接口更新订单状态,  此时前端一直在轮询接口状态 查询为付款成功。 有消息队列则忽略这条

     

    7.消息队列更新订

    展开全文
  • 到处没找到帝国扫码支付的插件,找到的都是收费的。所以自己随便改了个扫码支付,官方DEMO改的。功能都已实现。支付测试扫码的都没问题。后台支付记录也能正常添加
  • 本DEMO演示了PHP支付宝和微信扫码在线支付支付成功后,在回调地址显示支付相关信息。难易:中级下载资源下载积分:888积分操作步骤:1.修改配置文件 Application/common/conf/config.php $arr = ...
  • 微信扫码支付源码

    2019-08-06 14:48:18
    微信扫码支付本人亲测可用,大家可以放心的下载。有什么问题欢迎指正~
  • 最近工作遇到了和微信合作的需求,【微信扫码支付】和【微信扫码登录】,下面已现有网站为例解读一下针对这两种需求的解决方案。仅供参考。 1、微信扫码登录 其实微信开发者中心说的很全面,大家可以看下: 登录:...
  • 微信扫码支付

    2018-09-18 08:53:55
    本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付。实现从点击付费按钮、到弹出二维码、到用户用手机微信扫码支付、到手机上用户付费成功、web网页再自动调整到支付成功后的页面,这一个...
  • 微信扫码支付工具

    2018-01-02 19:26:33
    微信扫码支付demo工具类,包含配置APPID等的工具类。通过这些工具类,结合我的博客demo,可以实现开发。
  • 本demo 实现微信自定义菜单,自定义信息回复等功能,以及微信扫码支付,公众号支付,资源不易,欢迎反馈
  • 微信扫码支付 Demo Java

    热门讨论 2015-03-20 09:13:46
    Java 版本的微信扫码支付demo,公司刚做好微信支付,随后要上扫码支付,把demo分享出来,希望能帮助到有相同需求的朋友
  • 微信扫码支付总结

    2018-11-02 10:57:45
    微信扫码支付,流程很简单,就是将你要付款的一些信息放到集合里面,然后用微信SDK来生成对应的URL,再根据URL生成对应的二维码,扫码支付后,微信后台会有回调,异步通知(需要在服务器打印日志查看). 2.配置 [SDK调用...
  • 微信扫码支付源码
  • 本片文章通过代码示例给大家详细讲述了如何用nodejs写出微信扫码支付这个功能,有兴趣的朋友可以参考下。
  • 微信扫码支付开发 支付成功后 我用的零钱支付的 结果发现微信中没有交易记录?求解。。
  • 基于微信官方接口demo的帝国CMS微信扫码支付插件,7.2&7.5
  • PHP实现pc端微信扫码支付和支付宝在线支付,操作简单。下载里面附有操作说明,亲测可用。
  • 关于准备工作,微信扫码支付模式二:官方文档地址在这 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 可以先看看,实际上需要准备的东西有以下几个: <!-- 微信支付 开始--> <...
  • 微信扫码支付接口

    2018-08-27 18:29:04
    上次项目中用到了pc端微信扫码支付,虽然接口不是很难,但是找资料的时候比较少,所以做完分享出来,需要的小伙伴可以用哦~ &amp;lt;?php header('Content-type:text/html; Charset=utf-8'); $mchid = '*****...
  • Delphi7微信扫码支付(含源码),可以直接测试使用,调用简单,学习交流使用。
  • 微信扫码支付:此公众号并没有这些scope的权限,错误码:10005
  • 前面已经跑通了微信支付的流程,接下来吧微信支付微信企业付款接入到thinkphp中,版本是3.2 把微信支付类、企业付款类整合到一起放到第三方类库,这里我把微信支付帮助类和企业付款类放到同一个文件了: 把...
  • 易语言-微信扫码支付收款监控,登陆网页微信,监控收款

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,715
精华内容 2,286
关键字:

微信扫码付款支付不了