目录
在企业微信里面,企业微信通过对微信公众号支付的能力进行了扩展,企业可以通过自定义应用的方式开发出具有收款能力的应用。
企业使用向员工收款能力,需要先了解并在按照指引在微信支付侧开通企业微信专区,具体开通页面,详见如下地址:
https://work.weixin.qq.com/wework_admin/frame#hongbao/guide/hongbaoGuideEntry
这里需要特别注意的是使用微信公众号的oauth流程进行公众号支付的场景不能在企业微信中直接发起支付,区别在于此处需要使用企业微信的oauth流程先获取用户的userid(参考文档:企业微信oauth流程),再通过接口将userid转换为openid,具体的转换方式可以参考以下文档:userid与openid互换
在网页里通过JSAPI的方式发起支付出于安全因素需要对调用方的身份进行验证,所以开发者需要在页面上添加getBrandWCPayRequest接口的权限验证,验证方式如下:
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
appId: 'appId', // 必填,企业微信的corpID
timestamp: 'timestamp', // 必填,生成签名的时间戳
nonceStr: 'noncestr', // 必填,生成签名的随机串
signature: 'signature',// 必填,签名
jsApiList: ['getBrandWCPayRequest']
});
此处的验证方式和微信公众平台的网页开发签名算法一致,更多关于JSAPI签名算法的完整流程,请参考文档 :JS-SDK签名算法
企业完成上述配置以后,即可开始开发针对企业微信内支付的h5应用,具体的下单流程和微信支付公众号支付的下单流程一致,可参见以下文档进行统一下单操作:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
企业微信支付的JSAPI和微信公众号支付使用相同的接口,调用方式可参见如下接口文档:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
payParams,
function(res){
//TODO:res.err_code+res.err_desc+res.err_msg);
}
);
1、当前参与支付的页面路径的url域名需要与当前开发的企业微信应用配置中的可信域名匹配。
2、当使用企业微信的JSSDK进行鉴权失败时,请查阅 常见错误及解决方法
1、获取企业微信版本号
企业微信2.1.0版本后开始支持微信支付功能,低版本用户调用微信支付功能将无效。因此,建议企业通过user agent来确定用户当前的版本号后再调用支付接口。
以iPhone版本为例,可通过user agent获取如下企业微信版本,示例信息:
"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 wxwork/2.1.0 MicroMessenger/6.3.22"
其中2.1.0为用户安装的企业微信版本号,企业可以解析以上HTTP头,获取企业微信版本号是否高于或者等于2.1.0。
2、关于订单查询以及退款等API功能
由于向员工收款功能是在微信公众号支付的能力进行了扩展,所以和后台相关的订单操作、退款操作等相关接口和微信公众号支付流程一致,可参见文档:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2