微信支付点金计划和商家小票的开发教程

微信支付成功的跳转页面,点金计划和商家小票的开发教程

最近和一家企业合作,考虑怎么流量互换,于是就有了微信支付完后的跳转页面,利用微信的点金计划,展示商家小票的功能,作为初步方案。
在这里插入图片描述

直接进入主题,下面详细介绍代码开发方面需要注意的点(坑):

1、微信支付后跳转展示的页面, 叫点金计划,能够展示商家小票。商家小票就是展示自己写的内容。

2、官方的开发指引: https://http://wx.gtimg.com/pay/download/goldplan/goldplan_developer_guideline_v1.pdf?download
官方文档基本都说的很详细了,也挺简单的,重点要注意几点。

ps1: 调试时,扫描二维码的微信号,与支付该笔测试订单的微信号要一样。 否则不会出来商家小票,显示无法获取订单号。

ps2:外跳新页面(jumpOut 事件)外跳事件,暂不支持跳转小程序,原本计划点击商家小票,利用 <wx-open-launch-weapp> 跳转到小程序的,发现不支持,只能跳到新的html 页面,用户还得再次点击才能跳转小程序(非常影响用户体验,更别提转化了)

ps3:商家小票不显示,一片空白(注意不是无法获取订单信息哦),这是几乎都会遇到的坑,我们引入 VConsole.js 就能在微信打开调试器,找到问题所在,问题出在 html 的 fon-size = 0; 所以导致使用了rem 的元素都无法显示。(下面会介绍怎么用VConsole.js,超简单,超好用)

上图:类似小程序的调试器
在这里插入图片描述
ps4:使用商家小票必须引入官方的这个js,否则会受到处罚

<script type="text/javascript" charset="UTF-8" src="https://http://wx.gtimg.com/pay_h5/goldplan/js/jgoldplan-1.0.0.js"></script>

ps5: 因为商家小票页面不能动态获取屏幕宽高,所以直接设置。
// 解决进入商家小票 html的font-size = 0的问题(商家小票无法动态获取屏幕宽),请勿随意改动
document.querySelector(‘html’).style.fontSize = “10px”;

ps6:调试需要将写好的页面发布到线上,因为要用https链接。

打开调试器:VConsole.js
第一步引用js:

<script src="https://http://wechatfe.github.io/vconsole/lib/vconsole.min.js?v=3.2.0"></script>

第二部,初始化:
// 调试专用,vconsole
const vConsole = new VConsole();
然后就可以了,跟之前一样,使用console.log()打印,当在微信打开网页时,就会看到和微信小程序一样的调试器了。

下一期将会带大家一起使用 开放标签,微信内,h5页面跳转到小程序的功能。

如果有哪里不明白或者更好的建议的小伙伴可以一起讨论哦!最下面会附上代码片段。

基本代码块:

<div class="jumpnjfMiniProgram">
<img src="http://...." class="btn" id="tojumpbtn"/>
</div>

// 初始化
$(function() {
// 加载商家小票
let mchData ={action:'onIframeReady',displayStyle:'SHOW_CUSTOM_PAGE'};
let postData = JSON. stringify(mchData);
parent.postMessage(postData,'https://payapp.weixin.qq.com');

//注册点击事件
document.getElementById("tojumpbtn").onclick = function () {
let mchData = {
action: 'jumpOut',
jumpOutUrl: "https://...." // 外跳链接
};
let postData = JSON.stringify(mchData);
parent.postMessage(postData, 'https://payapp.weixin.qq.com');
}
});

还有就是获取微信传过来的商家号,订单号那些信息:
//获取返回页面参数
function getshangjiaxinxi(name) {
let querys = window.location.search.substring(1);
let admins = querys.split("&");
for (let i = 0; i < admins .length; i++) {
let hasddf = admins [i].split("=");
if (hasddf [0] == name) {
return hasddf [1];
}
}
return null;
};

//获取参数
let sub_mch_id = getshangjiaxinxi("sub_mch_id"); //特约商户号
console.log("sub_mch_id == ",sub_mch_id)
let out_trade_no = getshangjiaxinxi("out_trade_no"); //商户订单号
console.log("out_trade_no == ",out_trade_no)
let check_code = getshangjiaxinxi("check_code"); //md5 校验码
console.log("check_code == ",check_code)

// 至于校验md5,就要后台配合完善了。 其它业务逻辑也可以开展啦。
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值