最近在使用uniapp 开发微信公众号页面,有支付订单功能,在完成支付后,发现支付后的success,一直无法响应,找了好久文档,才发现目前微信支付完成后的回调能力被回收,已强制性的由点金计划的功能来替代(广告创收)。
WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId": wxAppId, //公众号名称,由商户传入
"timeStamp": orderback.timeStamp, //时间戳,自1970年以来的秒数
"nonceStr": orderback.nonceStr, //随机串
"package": "prepay_id=" + orderback.prepayId,
"signType": "RSA", //微信签名方式:
"paySign": orderback.paySign //微信签名
},
function(res) {
if (res.err_msg == "get_brand_wcpay_request:ok"){
// 就是这里,无法操作跳转。
//微信之前(公众号支付/H5网页支付)支付成功,点击完成可直接跳转指定页面。
// 后已修改。如果没有开通点金计划的服务商,支付后就会直接关闭商家页面。
// 开通点金计划可直接在服务商功能的点金计划查看
}else{
}
});
-
服务商如果没有为特约商户开通点金计划:微信支付完成后,发起支付的H5页面将被直接关闭,用户体验超级不好。
-
服务商为特约商户开通了点金计划:微信支付完成后,将会跳转到微信的点金计划页面,如果服务商没有为特约商户开通商家小票功能,则点金计划页面默认展示官方小票,反之则展示商家小票。
那么问题来了,如何进行点金计划中商家小票的开发呢?
-
找到微信开发社区的文章放到这里,请各位仔细读读
点这里 -
另外把自己uniapp 商家小票的代码放这里,供各位借鉴,亲测可用
效果图:
代码
<template>
<view class="page-box" style="display: grid;">
<view style="text-align: center;margin: 100rpx;">
<u-icon name="checkbox-mark" color="#2979ff" size="50"></u-icon>您的订单支付完成
</view>
<u-button type="primary" size='medium' shape="circle" @click = 'toOrder()' :plain="true">返回查看订单</u-button>
</view>
</template>
<script>
var goldPlan = require('../../common/jgoldplan-1.0.0.js');
import api from '@/common/api.js'
export default {
data() {
return {
sub_mch_id: '',
out_trade_no: '',
orderInfo : {}
}
},
onLoad(option) {
this.sub_mch_id = option.sub_mch_id; //特约商户号
this.out_trade_no = option.out_trade_no; //商户订单号
},
onReady() {
let mchData = {
action: 'onIframeReady',
displayStyle: 'SHOW_CUSTOM_PAGE'
};
let postData = JSON.stringify(mchData);
parent.postMessage(postData, 'https://payapp.weixin.qq.com');
},
methods: {
//注册点击事件(去详情)
getOrder(){
setTimeout(async function(){
let info = await api.getOrderInfo(this.out_trade_no);
this.orderInfo = info;
},1000);
},
toOrder: function() {
var mchData = {
action: 'jumpOut',
jumpOutUrl: 'https://fjmp.yuchangchina.com/test/hkzxh5/?rd=order' //跳转的页面
}
var pData = JSON.stringify(mchData);
parent.postMessage(pData, 'https://payapp.weixin.qq.com')
}
}
}
</script>