一、场景
微信公众号要支付宝支付,采用支付宝手机网站支付的方式。对接使用支付宝最新sdk,向前端输出form表单。
二、准备工作
支付宝公钥证书
支付宝根证书
支付宝应用公钥证书【这个要特别注意,以后对接是要先检查,证书和私钥是否匹配】
三、问题解决
输出的内容中包含url
{
"code": 0,
"msg": "success",
"data": {
"alipay": "<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?app_cert_sn=88d26dd3705b867c9475b2dcf73bbc0b&charset=utf-8&alipay_root_cert_sn=687b59193f3f462dd5336e5abf83c5d8_02941eef3187dddf3d3b83462e1dfcf6&method=alipay.trade.wap.pay&sign=FMkH%2Bfgw9Kg52Nd1eWPnBqmK5bOfm0P5D%2F3%2BqIbZUq8rlAdbeyqdrBPFGPMewi6xp2iA5IvcvRHq2XBrvJMFAOcexYm%2Fv5QYa65Gz1ytxHSxX69Q99%2FSUiPJhN1px%2BIBN7lWpskYofgankxpVkhRQI%2FgKvs0hTkDXCRXSQWWE6zUYus1K3IeOjXmzrh6y5%2B1PL02VJzAtVngiIrXcx%2Bx4zenT4Sw25TDS74qIvx%2FvAl%2BRUthJiFoINDbEJLGVGGypXhqzOPpAWhocgH1%2B9j6eaCp3EZXsxq1exhYr2W1aMnLzCOxZpMlvE7U23VxrzzovLuyWkBqL0crEe0YHs%2BkXw%3D%3D¬ify_url=http%3A%2F%2Flocalhost%3A10154%2Fapi%2Ffront%2Fali%2Fpay%2Fcallback&version=1.0&app_id=2021002133674198&sign_type=RSA2×tamp=2021-04-21+15%3A25%3A50&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json">\n<input type="hidden" name="biz_content" value="{"body":"外卖订单","out_trade_no":"20210421152550bUL1Ho","passback_params":"2d224","product_code":"QUICK_WAP_PAY","quit_url":"https:\/\/mp-user-xkcy154.haichuang.pro\/pages\/wx","subject":"外卖订单","timeout_express":"30m","total_amount":"0.01"}">\n<input type="submit" value="立即支付" style="display:none" >\n</form>\n<script>document.forms[0].submit();</script>"
}
}
注意这个form表单,放到html中的时候,要将"替换成",同时\n替换成 空。最重要的要将\/替换成/,(java在处理的时候,将/变成了\/)要不然就会报invalid-signature错误,这个错误我排查了5天。
网友评论