首先需要开通委托代扣服务 这个需要与腾讯口中的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
想到什么 我在补充吧