Ⅰ 微信openid原理及支付過程中使用方案
微信openid原理及支付過程中使用方案
一、 微信openid原理
微信openid由微信公眾號提供,是微信公眾號對於消費者微信產生的唯一用戶身份標識。openid可以應用於雲計算中的去中心化的身份認證技術,為用戶以一個身份在多個雲服務應用中通行提供了一種方式。
在聚合支付過程中,微信、支付寶在消費者使用手機支付的時,支付成功會返回給調用方openid(支付寶是buy_user_id)以標識消費者。結合微信的服務商模式,微信支付提供返回openid(對服務商),sub_openid(對渠道服務商)兩個openid供業務方自定義使用,支付寶返回的buy_user_id是支付寶為消費者在支付寶系統中生成的唯一id,對所有通道、所有服務商都一樣(本文不再描述)。
二、 支付過程中openid、sub_openid生成規則及使用
在雲pos聚合支付(被掃)過程中,生成的openid,是消費者微信對支付服務商報備到微信的主體為支付服務商的公眾號生成的。在微信支付的規則體系中,銀行通道支付服務商只能是銀行、三方通道(如中金)支付服務商只能是三方公司,因此,產生的openid,同一個消費者各個通道各不相同,同一通道是相同的。為了解決同一個消費者在多個通道支付時返回的openid一樣的需求,微信提供了sub_openid的欄位,供調用方自定義。對於實現本需求,可以在所有提供服務的銀行、三方公司通道上,將煙草公司設置成渠道服務商,統一配置sub_appid為煙草公司公眾號appid,這樣微信就會返回該appid對應的openid放到sub_openid欄位,這樣就實現了同一個消費者在不同通道(不同店鋪)支付時,產生的openid一樣,就可以唯一識別一個消費者了。
三、 對於sub_openid的生成所需的實施工作
實現基於煙草公司公眾號生成sub_openid,銀行、三方公司在做商戶入網時需在煙草公司渠道服務商下做商戶入網,主要如下:
(1) 每一個銀行、三方公司將地市煙草公司在微信支付上進件成渠道服務商。(提供營業執照、法人身份證、對公賬戶打款驗證),設置sub_appid為煙草公司公眾號appid
(2) 為商戶在煙草公司渠道服務商下入網
(3) 確認支付時是否需要實時上送sub_appid,確定支付時介面調用規則。