精华内容
下载资源
问答
  • 腾讯云支付

    2018-01-24 16:24:09
    腾讯团队内部提供的云支付开发文档,官网下载不到,只有大客户才能拿到,赶紧下载,对支付很有帮助
  • 三方支付系统全新年华云支付易支付网站源码 带彩虹模板 全新年华云支付易支付,附彩虹模板网站源码 想开通第三方支付,第四方支付的看过来了 源码支持单独设置支付宝,QQ,微信的费率 源码可对接官方支付,易支付,...
  • bl云支付源码

    2018-10-03 18:36:45
    bl云支付源码,最快一分钟介入,使您的网站具有支付功能
  • 安装说明:( 以下是捷兔云支付(易框架)安装方法。 Rabbitcloud支付系统我们协助安装。 ) 下载捷兔云支付后。访问 http://您的域名/install 进行安装程序 进入后台 – 网站管理 – 网站配置,修改“网站链接”即您...
  • 酷享云支付 安装说明: 访问 域名/install 进行安装 后台地址:/admin 账号admin 密码123456 其他教程: ========= 酷享云支付开发者: 余生
  • 支付宝云支付如何开通?

    千次阅读 2020-08-18 17:07:08
    支付宝有支付宝云支付,微信有腾讯云支付,这两个都是无需开发的聚合支付。且都是直连,且还不收费,且基础费率0.2%,香不香? 对很多做支付行业的从业人员来说,是很有吸引力的。毕竟用别人平台商户一直在别人那里...

    在这里插入图片描述

    支付宝有支付宝云支付,微信有腾讯云支付,这两个都是无需开发的聚合支付。且都是直连,且还不收费,且基础费率0.2%,香不香?

    对很多做支付行业的从业人员来说,是很有吸引力的。毕竟用别人平台商户一直在别人那里,款也是别人打到你的账户,走的都是第三方,肯定没有微信支付宝走直连直接打到你的账户靠谱。

    腾讯云支付和支付宝云支付大同小异,今天主要讲支付宝云支付怎么配置,腾讯云支付的,后面有时间展开讲。

    操作流程:
    1.注册好企业性质的公司
    2.注册并认证微信公众号服务号
    3.开通支付宝服务商和微信支付服务商
    4.开通支付宝云支付的注意事项

    下面详细给大家捋一捋:

    1.注册好企业性质的公司

    必须是企业性质,个体户不行,个体户没法开通微信支付服务商。企业要求有对公账户,有公章,门槛够低了吧。

    没有企业的,注册一家公司,刻章费600元,办理对公账户300元。成本不到1000元。嫌麻烦,找代办帮注册下,总成本也不到2000元。

    2.注册并认证微信公众号服务号用营业执照注册微信公众号服务号,这里一定要注意,是服务号,不是订阅号。很多新手都在这里被卡,不小心注册成了订阅号,然后认证完后发现,左侧菜单栏没有微信支付功能。白白浪费300元认证费。

    订阅号一个月能发30篇文章,服务号一个月只能发4篇文章,订阅号没有微信支付功能,只有服务号才有。

    3.开通支付宝服务商和微信支付服务商
    支付宝服务商相对简单,先注册企业支付宝,然后再到支付宝开放平台进行配置。注册企业支付宝时优先选择法人支付宝验证,几分钟验证完。对公打款验证往往得折腾至少一天。

    微信支付服务商相对复杂点,需要有认证过的服务号,然后到服务号里开通。开通时需要填写简述和开发文档,有疑问可以咨询我。

    4.开通支付宝云支付的注意事项
    在这里插入图片描述

    开通支付宝云支付是整个环节里最难的,操作流程复杂,易出错的点比较多,哪一点没配置好,后面检查难度就好比一个项目快上线了,要检查一个错误代码导致异常一样难。

    这里重点给大家梳理下比较容易犯错的点,也便于后面出错了方便检查。

    4.1云支付里配置支付宝时,要先创建第三方应用,一定要选第三方服务,自研服务不行。

    在这里插入图片描述

    4.2从三方服务进去,选创建应用,这里注意不是选择网页&移动应用,而要选择第三方应用–自定义接入。

    在这里插入图片描述

    4.3在生成支付宝公钥时,先下载,把生成的应用公钥复制到下图中,会自动生成支付宝公钥,这里需要注意了,应用公钥和支付宝公钥前面的字母都是一模一样,其实后面很多地方有差异,由于公钥很长,一下子看不到全数据。很多人误以为两个是一样的,直接把应用公钥当成了支付宝公钥保存了。这就导致后面配置配置支付宝云支付时,也黏贴错误。

    在这里插入图片描述

    4.4pid和appid是不一样的。
    appid是创建第三方应用的。而pid是支付宝开放平台的。pid是不变的,而appid是每创建一个应用都会变化的。这里不要复制错误了。

    4.5配置微信支付时,如下图需要上传p12拓展名证书,这是api证书里的一部分。api证书安装完后,要放到自己找得到的地方。解压后,找到p12结尾的文件上传,注意不是上传笔记本的那个。
    在这里插入图片描述

    4.6支付宝云支付配置好,在手机端进件,支付宝服务商小程序,登录时会提示权限受限,这种情况是没有设置管理员。登录云支付后台设置管理员时,系统又会提示没有设置基础费率。基础基础费率在哪设置?看下图:
    在这里插入图片描述

    把基础费率这里点进去,然后设定即可。

    有了支付宝云支付,随时随地都能给商家开通聚合支付,也能给身边经常收款的朋友开通聚合支付,支持小微商户(个人),个体商户,企业。非常实用。

    关于云支付的其他问题,比如支付宝云支付是什么,支付宝云支付如何开通,支付宝云支付怎么开通,腾讯云支付如何开通,微信支付服务商如何开通,支付宝服务商如何开通等问题都可以帮解答。

    如果想开通云支付,又觉得很麻烦,我可以帮忙。

    展开全文
  • 新版酷享云支付 易支付两套系统免签支付 即时到账无需签约 亲测正常安装使用 放出来给大家拿去研究吧!有简单的教程!
  • Discuz X3.2 云支付用户组、积分充值插件。 插件优势: 1、支持用户组、积分充值论坛; 2、支持各种付款方式及手机话费充值卡充值论坛用户组、积分; 3、支持单独用户组、积分充值论坛; 4、集成云支付收银台充值...
  • Discuz云支付充值插件

    2021-04-05 18:33:43
    Discuz X3.2 云支付用户组、积分充值插件。 插件优势: 1、支持用户组、积分充值论坛; 2、支持各种付款方式及手机话费充值卡充值论坛用户组、积分; 3、支持单独用户组、积分充值论坛; 4、集成云支付收银台充值...
  • 微信云支付的扫码支付

    千次阅读 2018-07-31 13:15:56
    之前研究微信云支付的扫码支付,我将认为重要的内容在本文中分享给大家。 微信云支付相关介绍 微信云支付的相关特点文档中已经介绍的很清楚了,这里就不在介绍了。 微信云支付文档 何为扫码支付 1.“商户主动...

    前言

    之前研究微信云支付的扫码支付,我将认为重要的内容在本文中分享给大家。

    微信云支付相关介绍

    微信云支付的相关特点文档中已经介绍的很清楚了,这里就不在介绍了。
    微信云支付文档

    何为扫码支付

    1.“商户主动下单,为每个订单生成一个二维码,顾客打开扫一扫进行扫码后,完成支付”
    2.“每个订单一个单独的二维码”
    3.“收银机具需要有给顾客展示二维码的屏幕,顾客扫码支付”
    4.“希望用户可以在收银机上自助点餐的商户,如肯德基等”

    注意:扫码支付的二维码是微信和支付各生成一个,并不是共用同一个二维码

    本文介绍扫码支付的支付和退款后台接口的编写,其余功能可根据这两个功能中参数的拼接方法,基本都可以实现

    扫码支付

    1.准备工作
    注册微信支付和支付宝支付的相关服务商账号以及微信云支付的账号,并配置好门店信息,如device_infos和staff_infos(这些信息在请求门店信息中要返回给客户端,可以见微信云支付的请求门店信息的API:请求门店信息)等,具体可以见微信支付、支付宝支付以及微信云支付的相关文档。
    2.计算认证码
    微信云支付官方文档中提供的是C++版的示例代码,计算认证码的算法是HMAC-SHA256。如果使用C++开发,请查看C++示例代码

    请求必须传认证或签名信息。其中退款请求,传签名和签名算法,其他请求传认证码和认证算法。

    计算认证码的方法:

        public static String caculateAuthenCode(String key, String data) {
            Mac sha256_HMAC = null;
            String hash = null;
            try {
                sha256_HMAC = Mac.getInstance("HmacSHA256");
                SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(), "HmacSHA256");
                sha256_HMAC.init(secret_key);
                hash = DatatypeConverter.printHexBinary(sha256_HMAC.doFinal(data.getBytes("UTF-8")));
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return hash;
        }

    其中参数key是云支付提供的“认证秘钥”里的字符串,data是你要加密的数据,也就是组织好的json格式的参数。
    这里写图片描述
    3.请求门店信息
    因为扫码支付的有些请求参数需要在请求门店信息接口返回的数据中获取,例如调用微信云支付的请求门店信息的接口,来获取门店账号(out_shop_id)、终端设备号(device_id)、店员ID(staff_id)以及终端类型(terminal_type)。
    根据查询门店信息接口文档,编写请求参数request_content和authen_info,如下

    {
        "request_content": "{\"out_mch_id\":\"云支付分配给服务商的帐号\",\"out_sub_mch_id\":\"云支付分配给子商户的帐号\",\"nonce_str\":\"26f827a651761f7d\",\"page_num\":1,\"page_size\":100}",
        "authen_info": {
            "a": {
                "authen_code": "计算得到的认证码",
                "authen_type": 1
            }
        }
    }

    请求示例代码

      public String request(String url, String requestContent, AuthenInfo authenInfo) {
            String responseContent = null;
            try {
                CloseableHttpClient client = HttpClients.createDefault();
                HttpPost post = new HttpPost();
                post.setURI(new URI(url));
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("request_content", "\"" + requestContent + "\"");//json字符串
                jsonObject.put("authen_info", authenInfo);//json对象
                StringEntity urlEncodedFormEntity = new StringEntity(jsonObject.toString(), "utf-8");//解决中文乱码问题
                urlEncodedFormEntity.setContentEncoding("UTF-8");
                urlEncodedFormEntity.setContentType("application/json");//发送json数据需要设置contentType
                post.setEntity(urlEncodedFormEntity);
                CloseableHttpResponse response = client.execute(post);
                HttpEntity entity = response.getEntity();
                responseContent = EntityUtils.toString(entity, "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return responseContent;
        }

    值得注意的是参数request_content的结构是json字符串,参数authen_info是json对象,见上面的代码。
    status为0代表请求成功
    从返回的内容中获取门店账号(out_shop_id)、终端设备号(device_id)、店员ID(staff_id)以及终端类型(terminal_type)

    3.根据微信云支付的扫码支付接口文档,编写请求参数
    我们可以根据文档中给的参数的类型,编写javabean 然后组织成json字符串,例如

    请求内容:

    {
        "pay_mch_key": {
            "pay_platform": 1,
            "out_mch_id": "云支付分配给服务商的帐号,固定20个数字或者字母",
            "out_sub_mch_id": "云支付分配给子商户的帐号,固定20个数字或者字母",
            "out_shop_id": "云支付唯一标识门店的账号"
        },
        "pay_content": {
            "out_trade_no": "云支付订单前缀46f827a751761fff",
            "total_fee": 60,
            "fee_type": "CNY",
            "body": "订单介绍",
            "wxpay_pay_content_ext": {
                "attach": "1",
                "goods_tag": "1234",
                "product_id": "spidSPBH129I902",
                "limit_pay": "no_credit"
            }
        },
        "order_client": {
            "device_id": "终端设备号",
            "staff_id": "店员ID",
            "terminal_type": 终端类型,
            "sdk_version": "SDK",
            "spbill_create_ip": "调用云支付API的机器IP"
        },
        "nonce_str": "16f827a651761f77"
    }

    认证信息

        {
            "a": {
                "authen_code": "计算得到的认证码",
                "authen_type": 1
            }
        }

    完成的请求参数结构

    {
        "request_content": "{\"pay_mch_key\":{\"pay_platform\":1,\"out_mch_id\":\"云支付分配给服务商的帐号\",\"out_sub_mch_id\":\"云支付分配给子商户的帐号\",\"out_shop_id\":\"云支付唯一标识门店的账号\"},\"pay_content\":{\"out_trade_no\":\"云支付订单前缀46f827a751761fff\",\"total_fee\":60,\"fee_type\":\"CNY\",\"body\":\"订单介绍\",\"wxpay_pay_content_ext\":{\"attach\":\"1\",\"goods_tag\":\"1234\",\"product_id\":\"spidSPBH129I902\",\"limit_pay\":\"no_credit\"}},\"order_client\":{\"device_id\":\"终端设备号\",\"staff_id\":\"店员ID\",\"terminal_type\":终端类型,\"sdk_version\":\"SDK\",\"spbill_create_ip\":\"调用云支付API的机器IP\"},\"nonce_str\":\"16f827a651761f77\"}",
        "authen_info": {
            "a": {
                "authen_code": "通过计算得到的认证码",
                "authen_type": 1
            }
        }
    }

    值得注意的是,

    为了保护不同商户的订单号不重复,云支付为每个服务商录入的子商户分配了“云支付订单前缀”,在云支付后台的商户详情中可以看到,该商户的订单和退款单必须以云支付子商户号做前缀。

    out_trade_no是云支付订单前缀加自定义字符串构成,比如,我的云支付订单前缀是ABCdfFS,则我可以设置订单号为
    ABCdfFS46f827a7517,订单前缀跟自定义字符串之前不能有特殊字符“+”或者“-”等

    请求示例代码

        public String request(String url, String requestContent, AuthenInfo authenInfo) {
            String responseContent = null;
            try {
                CloseableHttpClient client = HttpClients.createDefault();
                HttpPost post = new HttpPost();
                post.setURI(new URI(url));
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("request_content", "\"" + requestContent + "\"");//json字符串
                jsonObject.put("authen_info", authenInfo);//json对象
                StringEntity urlEncodedFormEntity = new StringEntity(jsonObject.toString(), "utf-8");//解决中文乱码问题
                urlEncodedFormEntity.setContentEncoding("UTF-8");
                urlEncodedFormEntity.setContentType("application/json");//发送json数据需要设置contentType
                post.setEntity(urlEncodedFormEntity);
                CloseableHttpResponse response = client.execute(post);
                HttpEntity entity = response.getEntity();
                responseContent = EntityUtils.toString(entity, "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return responseContent;
        }

    请求成功,返回数据示例:

    这里写图片描述

    根据请求得到的code_url,Android或iOS端就可以生成二维码进行展示了

    值得注意的是,订单是有过期时间的,可以自己指定过期时间(见文档),也可以不指定,不指定过期时间的话,默认过期时间是1分半钟,也就是说,如果此时没有扫码支付,这个订单就过期了,得重新生成一个订单并请求获取二维码。

    下一篇文章:微信云支付的退款

    OVER

    展开全文
  • 1分钟读懂 云支付(云收款)交易规则 当前位置:首页 > 官方动态 一、交易即时到账 你的客户通过云支付中任意一种付款方式(支付宝、微信支付、网银等)付款成功后均会时时到账于你的云支付,你可以在...

    1分钟读懂 云支付(云收款)交易规则

    当前位置: 首页 > 官方动态

    一、交易即时到账

    你的客户通过云支付中任意一种付款方式(支付宝、微信支付、网银等)付款成功后均会时时到账于你的云支付,你可以在订单中心或资金明细中查看。

    二、T+1与T+7的提现方案 

    商户在未发生过交易纠纷前:你的客户付款后会直接到你的“云支付”账户中,当天提现,第二天到账(T+1)。如发生过交易纠纷并且未能圆满解决,官方将视情节采取但不限于将按照国家规定 7天到账(T+7)执行。 官方会在每个月的1号对商户前一个月的订单进行评估(金额、投诉、纠纷、解决率),以确定本月的提现方案(T+1 or T+7 or 封号)。如云支付评定你的网站模式为高风险、高投诉网站将直接降权至T+7

    三、T+1提现方案详解

    1、星期一、星期二、星期三、星期四,0点~23点59分59秒间提现的资金将于次日23点前到账。

    2、星期五、星期六、星期日期间提现的资金将于下周一23点前到账。

    3、国家法定节假日期间提现的资金将于 节假日后第一个工作日23点前到账。

    四、提现费率(阶梯费率)

    txfl.png

    阶梯费率算法示例:

    1、如您的交易量为1580,则您的费用为1580*1.2%=18.96≈19

    2、如您的交易量为4850,则您的费用为4850*1.1%=53.34≈54

    3、如您的交易量为16982,则您的费用为16982*1.0%=169.82≈170

    4、如您的交易量为23988,则您的费用为23988*0.9%=215.892≈216

    五、多种结算方式

    个人:云支付官方企业支付宝 -> 您的个人支付宝(小额)

    个人:云支付官方对公账户->您的个人银行卡(大额)

    企业:云支付官方企业支付宝 -> 您的企业支付宝(小额)

    企业:云支付官方对公账户->您的法人银行卡(大额)已取消

    企业:云支付官方对公账户->您的对公账户(大额)


    展开全文
  • 微信云支付(delphi7).rar

    2021-05-11 22:08:36
    dephi7版的微信云支付接口,探讨调用pem文件
  • 云支付是腾讯云联合微信支付推出的商户聚合收款技术解决方案,为服务商开展业务提供了开放、可靠和低成本的收款技术服务。微信云支付api文档:https://cloud.tencent.com/document/product/569/37632
  • 冰蓝云支付系统,php源码,此源码已测试过,可正常运行。
  • 2019 新版酷享云支付第三方第四方支付源码,PHP 免签约支付源码、码支付源码下载 运行环境:php+mysql 源码大小:20.94MB 安装说明: 源码上传到根目录后运行/install 进行安装。
  • 绮梦云支付 彩虹易支付二开版
  • 腾讯云支付平台SDK接入流程,包含支付SDK说明,接入场景举例,接入简要流程说明等
  • 阿里云支付sdk000

    2019-01-26 11:58:57
    阿里云支付的一个jar包,平时下载挺麻烦的,就上传上来了,有需要的可以下载使用,象征性一个币0000
  • 微信云支付开发文档,微信云支付接入必备文档,有需要的同学,拿去!
  • 微信小程序-云支付那些事儿

    多人点赞 2021-09-06 00:21:30
    目录一、前言二、思路分析三、云支付小案例1.云函数1-1.获取免鉴权参数云函数(wxPay)1-2.支付回调云函数(payCallBack)2.小程序端(js代码)3.支付结果4、代码目录结构四、为什么这样写五、结语 一、前言 稍微玩...

    一、前言

    稍微玩过微信小程序云开发的同学都基本知道微信小程序云开发目前已经支持云支付这一能力。
    那么在云支付的能力支持之下,整个支付的流程是怎样的呢?
    例如:用户发起支付前、支付中、支付后的逻辑处理应该是怎样的,该如何设计会比较保险,降低出错的概率。
    那么本文主要介绍云支付的使用以及在云支付下的订单系统、支付流程该如何设计。

    顺便提一下:微信支付功能仅支持企业主体调用

    二、思路分析

    云支付的调用流程大致分为以下四步:

    1、获取免鉴权参数
    小程序端传入金额、商品信息等基本参数后,调用云函数获取免鉴权参数。

    2、将免鉴权参数传入小程序端的支付API
    云函数返回免鉴权参数,作为小程序端支付API的入参。

    3、用户支付
    调起微信支付,用户进行支付/取消支付操作

    4、微信端回调指定的云函数
    支付成功后回调此云函数。
    如果用户取消支付,则不会回调此云函数。

    那么,根据以上四个步骤就可以分析出,订单的创建、订单支付状态的改变应该是在什么时候了。
    订单的创建应该是在第一步的获取免鉴权参数的时候,获取免鉴权参数后将订单号等信息插入数据库。
    此时的订单支付状态应该是待支付状态。
    同时也可以知道,订单支付状态的改变,应该是在第四步中去进行改变,如果支付成功,将订单的支付状态改为支付成功即可。

    相关的官方文档链接:
    云支付文档
    云支付回调文档
    小程序端调起支付API文档

    三、云支付小案例

    1.云函数

    1-1.获取免鉴权参数云函数(wxPay)

    此云函数主要是获取支付API所需的参数,以及创建订单插入数据库。

    成功调用示例结果截图
    在这里插入图片描述
    实现代码

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    
    const db = cloud.database()
    
    exports.main = async (event) => {
    
      const wxContent = cloud.getWXContext() // openid等信息
      const openid = wxContent.OPENID
      const appid = wxContent.APPID
    
      const totalFee = event.totalFee // 支付金额(单位:分)
      const body = event.body // 商品名
    
      const outTradeNo = createOutTradeNo() // 订单号
    
      // 获取免鉴权支付参数
      const payMent = await cloud.cloudPay.unifiedOrder({
        "body": body,
        "outTradeNo": outTradeNo,
        "spbillCreateIp": "127.0.0.1",
        "subMchId": "商户号", // 商户号
        "totalFee": totalFee,
        "envId": "对应的云环境id", // 云环境id
        "functionName": "payCallBack" // 支付回调云函数
      })
    
      // 创建订单
      const nowTime = new Date().getTime()
      const orderObj = {
        _openid: openid,
        appid: appid,
        outTradeNo: outTradeNo,
        totalFee: totalFee * 0.01,
        payStatus: 'wait',
        createTime: nowTime,
        updateTime: nowTime,
        deleteTime: null,
      }
      await addOrder(orderObj)
    
      return payMent
    }
    
    /** 创建随机的唯一订单号(32位) */
    const createOutTradeNo = () => {
      let outTradeNo = new Date().getTime() // 获取当前13位时间戳
      let numStr = '0123456789';
      let randomStr = '';
      for (let i = (32 - 13); i > 0; --i) {
        randomStr += numStr[Math.floor(Math.random() * numStr.length)];
      }
      outTradeNo += randomStr
      return outTradeNo
    }
    
    /** 向数据库创建订单 */
    const addOrder = async (orderObj) => {
      return await db.collection('order')
        .add({
          data: orderObj
        })
        .then(res => {
          console.log("创建订单成功 =====>", res, orderObj)
        })
        .catch(err => {
          console.log("创建订单异常 =====>", err, orderObj)
        })
    }
    

    1-2.支付回调云函数(payCallBack)

    在用户支付成功后微信服务端将会调用此云函数,并携带支付方的订单号、openid、appid等信息。
    开发者可以根据这个来判断当前回调的是哪个订单。
    回调文档

    成功回调结果示例截图
    在这里插入图片描述
    实现代码

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    
    const db = cloud.database()
    
    // 云函数入口函数
    exports.main = async (event) => {
      console.log("回调返回对象 =====>", event)
    	// 判断条件
      if (event.returnCode == 'SUCCESS') {
        if (event.resultCode == 'SUCCESS') {
          // 查询条件
          const whereObj = {
            appid: event.subAppid, // 小程序的APPID
            _openid: event.subOpenid, // 小程序用户的openid
            outTradeNo: event.outTradeNo, // 商户号的订单号
          }
          // 更新对象
          const updateObj = {
            transactionId: event.transactionId, // 微信方的订单号
            totalFee: event.totalFee * 0.01, // 微信方收到的金额
            timeEnd: event.timeEnd, // 支付结束时间
            payStatus: 'success',
            updateTime: new Date().getTime()
          }
          // 更新订单
          await updateOrder(whereObj, updateObj)
        }
      }
      // 支付回调的返回协议和入参协议(必须返回此结构体,详见文档)
      return {
        errcode: 0,
        errmsg: event.resultCode
      }
    }
    
    /** 更新订单的支付状态 */
    const updateOrder = async (whereObj, updateObj) => {
      return await db.collection('order')
        .where(whereObj)
        .update({
          data: updateObj
        })
    }
    

    2.小程序端(js代码)

    
    // pages/wxPay/wxPay.js
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
    
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad() {},
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow() {},
    
      /** 支付点击监听 */
      async payTap() {
        const totalFee = 2
        const body = '支付测试'
        wx.showLoading({
          title: '调起微信支付中',
          mask: true
        })
    
        // 获取支付免鉴权参数
        const payMentRes = await this.getPayMent(totalFee, body)
        wx.hideLoading({
          success: (res) => {},
        })
        // 小程序支付API
        const payRes = await this.wxPay(payMentRes.result.payment)
        // 支付API返回结果打印
        console.log(payRes)
      },
    
      /**
       * 小程序支付API
       * @param {object} payment 支付免鉴权参数
       */
      wxPay(payment) {
        return new Promise((resolve, rejects) => {
          wx.requestPayment({
            ...payment,
            success(res) {
              resolve({
                status: 'success',
                res: res
              })
            },
            fail(err) {
              resolve({
                status: 'fail',
                res: err
              })
            }
          })
        })
      },
    
      /**
       * 获取支付免鉴权参数
       * @param {number} totalFee 支付金额, 单位:分
       * @param {string} body 商品名称
       */
      getPayMent(totalFee, body) {
        return new Promise((resolve, rejects) => {
          wx.cloud.callFunction({
            name: 'wxPay',
            data: {
              totalFee,
              body
            },
            success(res) {
              resolve(res)
            },
            fail(err) {
              resolve(err)
            }
          })
        })
      },
    
    })
    

    3.支付结果

    用户端
    在这里插入图片描述
    商家端
    在这里插入图片描述

    4、代码目录结构

    在这里插入图片描述

    四、为什么这样写

    或许有的同学也使用过微信云支付的能力,但是不曾使用到上面说到的支付回调云函数
    但是也可以做到获取用户的支付结果。

    如下图
    在这里插入图片描述

    事实上,小程序端的支付API(wx.requestPayment())也可以返回当前的支付结果。也确实可以使用这个回调的结果来判断支付是否成功。
    那既然这样,为什么还要多此一举写个支付回调云函数来获取支付的结果呢?

    看到这里也说明你看完了整个实现过程了,如果你有为什么要用这种方式实现的疑问,也应该多少能够自己给自己找到一些答案。

    除去开发规范、优化相关的小问题,我这里说一个很致命的原因。
    微信小程序支付API(wx.requestPayment())在IOS端有一个致命的问题,

    当用户支付后会进入下面这个页面
    在这里插入图片描述

    当用户不点击完成按钮,微信小程序的支付API(wx.requestPayment())回调是不会触发的。

    也就说,小程序自身拿不到用户的支付结果了。
    假设用户直接退出了微信,小程序也就销毁了。这时,订单状态该如何改变呢?

    tips: 在安卓端不会出现这个问题。有兴趣的同学可以自己去实践以下。

    五、结语

    思路是这样的,但是一些异常处理,需要开发者在开发过程中自行处理,例如订单插入失败、更新失败等异常问题。虽然概率不大,而且也有打印调用记录,如果出现问题,也是可以查到调用记录以及相关信息。

    有任何疑问可以在评论区留下。我每天都会进行回复,私聊不回。(为了刷积分)

    以上均是本人开发过程中的一些经验总结与领悟,如果有什么不正确的地方,希望大佬们评论区斧正。

    💥最后!!!不管这篇文章对你有没有用,既然都看到最后了。
    👍赞一个!!!
    🤩当然,顺带收藏就最好了。
    😎欢迎转载,原创不易,转载请注明出处✍。

    展开全文
  • 云支付合伙人合作协议.doc
  • 酷享云支付 安装说明: 访问 域名/install 进行安装 后台地址:/admin 账号admin 密码123456 其他教程: ==================================================================================================...
  • 微信云支付之退款

    千次阅读 2018-08-21 16:24:13
    前言 上一篇文章,我们介绍了... 签名生成算法:RSASSA-PSS-2048-SHA256,私钥为服务商在云支付录入商户时,在网页上生成的签名私钥(该私钥只有服务商知道,云支付不知道,请妥善保存 ) 使用java实现计算签名...
  • 云支付和云付通的员工手册.pdf
  • 盒子云易支付2020开源特别版vPro多通道多主题配色云支付源码 开源无加密,特色功能支持QQ防红、推广返利、主题多配色可选,通道默认支持支付宝、微信、QQ钱包、财付通、微信支付H5、当面付、码支付等 tips:版本开源...
  • 腾讯云支付是借力TEG多年沉淀的技术能力,由腾讯云联合微信支付推出的移动收单SaaS服务,旨在为商户提供一个安全、稳定、高效、易用、低成本接入微信支付的解决方案,助力移动支付行业快速健康地发展。 一、云支付...
  • Discuz云支付充值插件 更新日志: 1、新增订单入库,电子商务里可以查询订单 2、修复积分到帐BUG 3、新增安全性规则,提高稳定性 Discuz云支付充值插件 简介 Discuz X3.2 云支付用户组、积分充值插件。 插件...
  • 腾讯云支付成功页面模板最新.zip
  • 即刻云支付系统源码、监控源码、安卓源码,运营级个人免签支付系统源码。 该支付系统 PHP 源码附件包含:个人免签支付系统源码,多用户版监控软件易语言源码,java 安卓端(实时生成二维码),数据库文件,带轮询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 75,547
精华内容 30,218
关键字:

云支付