\pages\WxPay\WxPay.js
// pages/insurance/WxPay/WxPay.js
Page({
/**
* 頁面的初始數據
*/
data: {
text:"",
params:null,
},
/**
* 生命週期函數--監聽頁面加載
*/
onLoad: function (options) {
this.wxPayFn(options);
},
/**
* 生命週期函數--監聽頁面初次渲染完成
*/
onReady: function () {
},
/**
* 生命週期函數--監聽頁面顯示
*/
onShow: function () {
//console.log(this.params);
},
/**
* 生命週期函數--監聽頁面隱藏
*/
onHide: function () {
},
/**
* 用戶點擊右上角分享
*/
onShareAppMessage: function () {
},
wxPayFn:function(obj){
let _this = this;
encodeURIComponent(obj.prepay_id)
console.log(obj.paySeqNo)
wx.requestPayment({
'timeStamp': obj.timeStamp,
'nonceStr': obj.nonceStr,
'package': decodeURIComponent(obj.prepay_id),
'signType': 'MD5',
'paySign': obj.paySign,
'success': function (res) {
wx.showLoading({title: '請稍等..',mask:false,})
let timer = setTimeout(function(){
_this.queryPaymentStatus(obj.paySeqNo, timer)
},1600)
},
'fail': function (res) {
wx.showModal({
title: '溫馨提示',
content:"支付失敗",
showCancel: false,
success: function (res) {
if (res.confirm) {
console.log('用戶點擊確定')
wx.switchTab({
url: '/pages/index/index'
})
} else if (res.cancel) {
console.log('用戶點擊取消');
return;
}
}
})
}
})
},
queryPaymentStatus: function (paySeqNo,timer){
let _this = this;
/* 支付狀態 */
let payStatus = {
SUCC: 1,
// 查詢訂單:支付成功
FAILD: 3 // 查詢訂單:支付失敗
};
wx.request({
url: wx.getStorageSync('API').queryPaymentStatus,
method:"POST",
header:{
'content-type':'application/x-www-form-urlencoded'
},
dataType:"json",
success: function (result){
if (result.payStatus == payStatus.SUCC) {
let sendData = {
paySeqNo: paySeqNo,
bankSeqNo: result.bankSeqNo,
responseProtocol: 'json',
uuid: result.A_M_C_N
}
_this.ahhsInsureConfirmPolicy(sendData)
} else {
wx.hideLoading();
wx.navigateTo({
url: '/pages/paySucceed/paySucceed'
})
}
},
fail:function(err){
wx.hideLoading();
wx.navigateTo({
url: '/pages/paySucceed/paySucceed'
})
},
complete:function(){
clearTimeout(timer)
}
})
},
ahhsInsureConfirmPolicy: function (sendData){
wx.request({
url: wx.getStorageSync('API').ahhsInsureConfirmPolicy,
method:'GET',
data: sendData,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
dataType: "json",
success: function (response){
},
fail:function(err){
},
complete:function(res){
wx.hideLoading();
wx.navigateTo({
url: '/pages/paySucceed/paySucceed'
})
}
})
}
})
\pages\WxPay\WxPay.wxml
<!--pages/insurance/WxPay/WxPay.wxml-->
<view class='atPay'>
<image src='/images/paying.png'></image>
</view>
/* pages/insurance/WxPay/WxPay.wxss */
.atPay{
margin: 0 auto;
text-align: center;
width: 100%;
}
.atPay image{
margin-top: 50rpx;
width: 180rpx;
height: 156rpx;
}