Apple 2017年1月1號(hào)起要求Appstore 上線的應(yīng)用都必須使用 https 加密請(qǐng)求協(xié)議,在二月份又改為建議 從 http 升級(jí)為 https 協(xié)議,此為背景。
公司做的APP同時(shí)在App Store和安卓應(yīng)用市場(chǎng)上了線。應(yīng)要求,我們也將協(xié)議升級(jí)為https。由于自制https證書(shū)不能用于支付寶請(qǐng)求協(xié)議,故從阿里云購(gòu)買(mǎi)的證書(shū)服務(wù)。升級(jí)為https之后碰到了諸多問(wèn)題。
1.支付寶微信支付成功卻收不到notify回調(diào)的情況。
支付notify_url 要求回調(diào)時(shí) url 不得帶任何參數(shù),如果請(qǐng)求為 https 證書(shū)必須由認(rèn)證機(jī)構(gòu)發(fā)放,自制證書(shū)無(wú)效。
微信要求必須為80端口,那么回調(diào)請(qǐng)求就應(yīng)該為http請(qǐng)求。
項(xiàng)目由nginx加tomcat搭建,部署在ECS Linux 上面。那么支付請(qǐng)求如下
1)APP發(fā)起支付請(qǐng)求——>
2)支付寶確認(rèn)簽名,如果正確則支付成功——>
3)支付寶給notify_url 發(fā)異步通知——>
4)服務(wù)器收到異步通知,確認(rèn)訂單狀態(tài),結(jié)束此次支付請(qǐng)求。