1.微信公众号支付
流程:拼接授权url,然后将授权的redirectUrl定义为含有微信预下单支付等的方法内
(1)授权在拼接授权url时将相关的预下单所需的参数一并拿到,然后redirect至redirectURL业务处理(2)统一下单拿到上一步传递来的参数,调用微信统一下单API。除被扫支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP等不同场景生成交易串调起支付。注意统一下单时有个通知地址 notify_url 主要是用于异步接收微信支付结果,通知url必须为外网可访问的url,不能携带参数。可参考 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1(3)根据交易场景生成交易串根据统一下单返回的信息生成交易串 如 paySign等(4)根据生成的交易串在微信浏览器内执行js调起支付
示例代码如下:
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":"wx45444b1b1c4370ec43b", //公众号名称,由商户传入
"timeStamp":"1395712654", //时间戳,自1970年以来的秒数 "nonceStr":"e61463sdf8efa94090b1f366gdvfbb444", //随机串
"package":"prepay_id=u802345jgfjsdfgsdg888",
"signType":"MD5", //微信签名方式:
"paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
}
);
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
(5) 在通知url 内根据微信通知的结果进行业务处理
2 微信扫码付
(1)统一下单
(2)返回二维码code前端展示二维码
(3)用户扫码 通知url 进行业务处理
以上需要在微信公众平台内设置相关信息如微信授权域名授权目录支付回调等
3。支付宝手机网站
支付宝sdk比较强大,直接拿来用。demo也比较清晰感觉弄起来简单,深入也许就难了。
过程是 调用支付宝手机网站支付接口 ,参考
https://doc.open.alipay.com/doc2/detail.htm?treeId=203&articleId=105463&docType=1
然后通知回调,注意的是支付宝通知回调有两个,一个是同步一个是异步。
回调中有个验证的过程,验证通过了然后再根据返回的支付支付状态进行相关业务处理。需要注意的是新版的支付宝手机网站支付接口同步通知时不会再返回交易状态。
4。手机扫码
先调用支付宝alipay.trade.precreate (统一收单线下交易预创建)