feat: 支持 H5 公众号微信商家转账确认收款
parent
8338321786
commit
84a9fb5c78
|
|
@ -229,7 +229,7 @@
|
||||||
}
|
}
|
||||||
let openid;
|
let openid;
|
||||||
if (state.accountInfo.type === '5') {
|
if (state.accountInfo.type === '5') {
|
||||||
openid = await sheep.$platform.useProvider('wechat').getOpenid();
|
openid = await sheep.$platform.useProvider('wechat').getOpenid(true);
|
||||||
// 如果获取不到 openid,微信无法发起支付,此时需要引导
|
// 如果获取不到 openid,微信无法发起支付,此时需要引导
|
||||||
if (!openid) {
|
if (!openid) {
|
||||||
goBindWeixin();
|
goBindWeixin();
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import $helper from '@/sheep/helper';
|
||||||
import AuthUtil from '@/sheep/api/member/auth';
|
import AuthUtil from '@/sheep/api/member/auth';
|
||||||
|
|
||||||
let configSuccess = false;
|
let configSuccess = false;
|
||||||
|
let configAppId = ''; // JSSDK 初始化所使用的公众号 appId,确认收款时需要
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// 判断是否在微信中
|
// 判断是否在微信中
|
||||||
|
|
@ -47,9 +48,11 @@ export default {
|
||||||
'updateAppMessageShareData',
|
'updateAppMessageShareData',
|
||||||
'updateTimelineShareData',
|
'updateTimelineShareData',
|
||||||
'scanQRCode',
|
'scanQRCode',
|
||||||
|
// 'requestMerchantTransfer', // TODO @使用者:如果需要微信商家转账功能,请打开该注释;
|
||||||
], // TODO 芋艿:后续可以设置更多权限;
|
], // TODO 芋艿:后续可以设置更多权限;
|
||||||
openTagList: data.openTagList,
|
openTagList: data.openTagList,
|
||||||
});
|
});
|
||||||
|
configAppId = data.appId;
|
||||||
} else {
|
} else {
|
||||||
console.log('请求 JSSDK 配置失败,错误码:', code);
|
console.log('请求 JSSDK 配置失败,错误码:', code);
|
||||||
}
|
}
|
||||||
|
|
@ -195,4 +198,50 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 商家转账,用户确认收款(H5 / 公众号)
|
||||||
|
// 可见 https://pay.weixin.qq.com/doc/v3/merchant/4012716430 文档
|
||||||
|
requestMerchantTransfer(data, callback) {
|
||||||
|
const invoke = () => {
|
||||||
|
// WeixinJSBridge 内置对象,仅在微信客户端中有效
|
||||||
|
if (typeof WeixinJSBridge === 'undefined') {
|
||||||
|
callback.fail && callback.fail({ errMsg: '请在微信客户端中打开页面后再确认收款' });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WeixinJSBridge.invoke(
|
||||||
|
'requestMerchantTransfer',
|
||||||
|
{
|
||||||
|
mchId: data.mchId,
|
||||||
|
appId: data.appId || configAppId,
|
||||||
|
package: data.package,
|
||||||
|
},
|
||||||
|
function (res) {
|
||||||
|
if (res.err_msg === 'requestMerchantTransfer:ok') {
|
||||||
|
callback.success && callback.success(res);
|
||||||
|
} else if (res.err_msg === 'requestMerchantTransfer:cancel') {
|
||||||
|
callback.cancel && callback.cancel(res);
|
||||||
|
} else {
|
||||||
|
callback.fail && callback.fail(res);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
this.isReady(() => {
|
||||||
|
// 校验微信客户端是否支持 requestMerchantTransfer
|
||||||
|
jweixin.checkJsApi({
|
||||||
|
jsApiList: ['requestMerchantTransfer'],
|
||||||
|
success: function (res) {
|
||||||
|
if (res.checkResult && res.checkResult['requestMerchantTransfer']) {
|
||||||
|
invoke();
|
||||||
|
} else {
|
||||||
|
callback.fail && callback.fail({ errMsg: '你的微信版本过低,请更新至最新版本' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: function () {
|
||||||
|
// checkJsApi 失败时,兜底直接尝试调用
|
||||||
|
invoke();
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import $wxsdk from '@/sheep/libs/sdk-h5-weixin';
|
||||||
import { getRootUrl } from '@/sheep/helper';
|
import { getRootUrl } from '@/sheep/helper';
|
||||||
import AuthUtil from '@/sheep/api/member/auth';
|
import AuthUtil from '@/sheep/api/member/auth';
|
||||||
import SocialApi from '@/sheep/api/member/social';
|
import SocialApi from '@/sheep/api/member/social';
|
||||||
|
import sheep from '@/sheep';
|
||||||
|
|
||||||
const socialType = 31; // 社交类型 - 微信公众号
|
const socialType = 31; // 社交类型 - 微信公众号
|
||||||
|
|
||||||
|
|
@ -94,6 +95,30 @@ async function getInfo() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 商家转账用户确认模式下,拉起页面请求用户确认收款 Transfer
|
||||||
|
// 入参与小程序保持一致:(mchId, packageInfo, successCallback, failCallback)
|
||||||
|
function requestMerchantTransfer(mchId, packageInfo, successCallback, failCallback) {
|
||||||
|
$wxsdk.requestMerchantTransfer(
|
||||||
|
{
|
||||||
|
mchId,
|
||||||
|
package: packageInfo,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
success: (res) => {
|
||||||
|
successCallback && successCallback({ result: 'success', ...res });
|
||||||
|
},
|
||||||
|
cancel: (res) => {
|
||||||
|
sheep.$helper.toast('确认收款已取消');
|
||||||
|
failCallback && failCallback({ result: 'cancel', errMsg: '确认收款已取消', ...res });
|
||||||
|
},
|
||||||
|
fail: (res) => {
|
||||||
|
sheep.$helper.toast(res.errMsg || '确认收款失败');
|
||||||
|
failCallback && failCallback({ result: 'fail', ...res });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
load,
|
load,
|
||||||
login,
|
login,
|
||||||
|
|
@ -101,5 +126,6 @@ export default {
|
||||||
unbind,
|
unbind,
|
||||||
getInfo,
|
getInfo,
|
||||||
getOpenid,
|
getOpenid,
|
||||||
|
requestMerchantTransfer,
|
||||||
jsWxSdk: $wxsdk,
|
jsWxSdk: $wxsdk,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue