实现微信 委托代扣/包月服务

首先需要开通委托代扣服务 这个需要与腾讯口中的BD (类似于商务拓展服务商) 委托代扣服务 属于内测 只能通过Bd开通 (这一步不需要来考虑)
看开通后 在微信商户平台->产品中心->支付扩展工具
如图:
在这里插入图片描述
微信商户平台->交易中心->高级业务
需要在这里 新增模板 模板需要腾讯审核 大约 1-3个工作日
在这里插入图片描述
申请完模板 基本准备工作就做好了 下面就要开始对接了 (对接过程中 坑 特别多 需要自己慢慢排雷 看完这篇 应该会避免很多雷)
///
我接入的小程序 所以我以小程序为例 其他的换汤不换药 只有思路就能冲
微信官方文档链接 ------------》 传送门

特别注意几个参数 固定值 固定值 固定值 一定要看清 这是固定值 也就是不用修改的参数
微信签约小程序appid:wxbd687630cd02ce1d
打开小程序的页面路径:pages/index/index
在这里插入图片描述
然后就是组成 extraData 里的参数
在这里插入图片描述
这里坑比较多 需要特别注意
签名生成方法

		//appid  小程序id
		$data['appid'] = '';
		//商户号
		$data['mch_id'] = '';
		//模板id  就是在 微信商户中申请的id 
		$data['plan_id'] = '144444';
	    //$data['total_fee'] = 1;
		$data['contract_code'] = date('Ymd') . str_pad(mt_rand(9999999999, 9999999999999999), 5, '0', STR_PAD_LEFT);
		$data['request_serial'] = time();
		$data['contract_display_account'] = '开通会员连续包月';
		//接受成功的回调 url
	    $data['notify_url'] = '';
		$data['timestamp'] = time();
		ksort($data);
		//生成sign
		$str 	= urldecode(http_build_query($data).'&key='.$config['wechat']['key']);
		$sign 	= strtoupper(md5($str));
		$post['sign'] = $sign;
		$data['sign'] =  $post['sign'];
		//这里是 打印出xml 用于 校验是否 生成签名有问题 
	    //$xml = $this->buildXml($data);
		$data['notify_url'] = urlencode($data['notify_url']);
		//把data 返回到小程序端  对号入座就可以

小程序端代码

 	wx.navigateToMiniProgram({
          appId:'wxbd687630cd02ce1d',
          path:'pages/index/index',
          extraData:{
              appid:result.data.appid,
              contract_code:result.data.contract_code,
              contract_display_account:result.data.contract_display_account,
              mch_id:result.data.mch_id,
              notify_url:result.data.notify_url,
              plan_id:result.data.plan_id,
              request_serial:result.data.request_serial,
              timestamp:result.data.timestamp,
              sign:result.data.sign
          },
      success(res) {
          // 成功跳转到签约小程序 ]
          wx.showLoading({
            title: '拉起来',
          })
          setTimeout(function () {
            wx.hideLoading()
          }, 2000)
      },
      fail(res) {
          // 未成功跳转到签约小程序 
          wx.showLoading({
            title: '失败了',
          })
          setTimeout(function () {
            wx.hideLoading()
          }, 2000)
      },
      complete(res){
        console.log(res)
        console.log('-------------华丽的分割线--------------');
      }
      })

如果成功拉起 需要在 app.js中写回调 也就是 用户签约成功之后 要返回到当前小程序 在文档中也有
在这里插入图片描述
直接拿来用就行 如果成功 直接下单就可以
下单文档 -----》 传送门
这一步比较简单 就正常的下单 就可以 下完单 会马上扣款 不用要程序在拉起
只需要处理好 签约解约 等这些操作就行

有什么问题随时留言联系 ooooooooooooooooooooo
想到什么 我在补充吧

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
实现微信代扣教育续费通功能,你可以按照以下步骤进行操作: 1. 配置微信支付:首先,在微信支付平台上注册账号,并获取到相关的API密钥、商户号等信息。 2. 创建Spring Boot项目:使用Spring Initializr或其他方式创建一个新的Spring Boot项目。 3. 添加依赖:在项目的pom.xml文件中添加微信支付相关的依赖,比如`wechatpay-api`、`wechatpay-transport`等。 4. 实现代扣接口:创建一个Controller类,在其中定义一个处理教育续费代扣请求的接口,比如`/wechat/pay/withhold`。在这个接口中,你可以接收用户的续费请求并处理代扣逻辑。 5. 配置支付参数:将微信支付所需的参数配置到application.properties或application.yml文件中,包括API密钥、商户号等。 6. 发起代扣请求:在你的业务逻辑中,当用户需要进行续费时,调用微信支付接口,生成代扣链接或二维码,并将用户的续费信息传递给微信支付平台。 7. 处理代扣回调:当代扣操作完成后,微信会通过回调通知的方式将支付结果发送给你的服务器。在之前定义的代扣回调接口中,你可以解析并处理这些回调通知,更新订单状态、发送通知等操作。 8. 异常处理和安全性:在实现过程中,要考虑异常处理和安全性。例如,处理代扣过程中可能出现的异常情况,并确保代扣接口的安全性,防止恶意攻击和重复代扣等问题。 这只是一个简单的实现思路,具体的实现细节还需要根据你的具体需求和业务场景来定制。希望对你有所帮助!如果你还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wise man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值