国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

微信公眾號支付開發(fā)全過程(java版)

Shimmer / 2347人閱讀

摘要:一微信官方文檔微信支付開發(fā)流程公眾號支付首先我們到微信支付的官方文檔的開發(fā)步驟部分查看一下需要的設(shè)置。配置微信公眾賬號支付配置支付類所有方法都在這個類里發(fā)起支付微信公眾賬號支付訂單異步回調(diào)這就是這個所說的行代碼解決微信支付。

文章有不當(dāng)之處,歡迎指正,如果喜歡微信閱讀,你也可以關(guān)注我的微信公眾號:好好學(xué)java,獲取優(yōu)質(zhì)學(xué)習(xí)資源。
一、微信官方文檔微信支付開發(fā)流程(公眾號支付)

首先我們到微信支付的官方文檔的開發(fā)步驟部分查看一下需要的設(shè)置。
[圖片上傳失敗...(image-5eb825-1531014079742)]

因為微信支付需要較高的權(quán)限,只有認(rèn)證了得服務(wù)號才有使用微信支付接口的權(quán)限,我們個人很難申請到,所以需要向其他朋友借用賬號。

來到文檔的業(yè)務(wù)流程部分,查看微信支付的流程(我覺得這個還是需要十分仔細(xì)的了解和查看的,這有助于你理解微信開發(fā)的流程)。

然后,訪問微信支付接口是要傳遞的參數(shù)很多,見統(tǒng)一下單
[圖片上傳失敗...(image-df7051-1531014079742)]

通過查看上面的這些微信支付的官方文檔之后,我相信你對這些應(yīng)該有了一定的了解了,但是還是覺得微信支付的開發(fā)十分的麻煩,所以我們接下來使用第三方的sdk來開發(fā)。

二、微信支付第三方sdk開發(fā)(公眾號支付)

這個是公眾號支付,我們使用best-pay-sdk,這個SDK使用PayRequestPayResponse對請求接口和相應(yīng)結(jié)果做了大量的封裝,主要需要動態(tài)傳入的參數(shù)是openid(用戶唯一標(biāo)識)和orderId。接下來我們看看如何開發(fā)。

1、配置
 //微信公眾賬號支付配置
    WxPayH5Config wxPayH5Config = new WxPayH5Config();
    wxPayH5Config.setAppId("xxxxx");
    wxPayH5Config.setAppSecret("xxxxxxxx");
    wxPayH5Config.setMchId("xxxxxx");
    wxPayH5Config.setMchKey("xxxxxxx");
    wxPayH5Config.setNotifyUrl("http://xxxxx");
            
    //支付類, 所有方法都在這個類里
    BestPayServiceImpl bestPayService = new BestPayServiceImpl();
    bestPayService.setWxPayH5Config(wxPayH5Config);
2、發(fā)起支付
  PayRequest payRequest = new PayRequest();
     payRequest.setPayTypeEnum(BestPayTypeEnum.WXPAY_H5);
     payRequest.setOrderId("123456");
     payRequest.setOrderName("微信公眾賬號支付訂單");
     payRequest.setOrderAmount(0.01);
     payRequest.setOpenid("openid_xxxxxx");
     bestPayService.pay(payRequest);
3、異步回調(diào)
  bestPayService.asyncNotify();

這就是這個sdk所說的10行代碼解決微信支付。

支付完成后,微信會返回給把支付結(jié)果以一段支付xml的數(shù)據(jù)返回給我們,我們需要將這段數(shù)據(jù)傳遞給異步通知url(notify_url),來完成支付結(jié)果的驗證(驗證簽名,驗證支付狀態(tài)),這兩步SDK都為我們做好了,只需這樣調(diào)用bestPayService.asyncNotify(notifyData);,完成驗證后,我們需要返回給微信這樣一段數(shù)據(jù):



  
  

告訴微信已完成驗證,不要再給我們發(fā)送異步通知的請求。

是不是還是不太清楚如何集成到項目?沒關(guān)系,這個還有示例demo,可以更加明了的清楚。

三、demo運行

demo網(wǎng)址為:https://github.com/Pay-Group/...

我們最主要的controller放在這里:

@Controller
@Slf4j
public class PayController {

    @Autowired
    private BestPayServiceImpl bestPayService;

    /**
     * 發(fā)起支付
     */
    @GetMapping(value = "/pay")
    public ModelAndView pay(@RequestParam("openid") String openid,
                            Map map) {
        PayRequest request = new PayRequest();
        Random random = new Random();

        //支付請求參數(shù)
        request.setPayTypeEnum(BestPayTypeEnum.WXPAY_H5);
        request.setOrderId(String.valueOf(random.nextInt(1000000000)));
        request.setOrderAmount(0.01);
        request.setOrderName("最好的支付sdk");
        request.setOpenid(openid);
        log.info("【發(fā)起支付】request={}", JsonUtil.toJson(request));

        PayResponse payResponse = bestPayService.pay(request);
        log.info("【發(fā)起支付】response={}", JsonUtil.toJson(payResponse));

        map.put("payResponse", payResponse);

        return new ModelAndView("pay/create", map);
    }

    /**
     * 異步回調(diào)
     */
    @PostMapping(value = "/notify")
    public ModelAndView notify(@RequestBody String notifyData) throws Exception {
        log.info("【異步回調(diào)】request={}", notifyData);
        PayResponse response = bestPayService.asyncNotify(notifyData);
        log.info("【異步回調(diào)】response={}", JsonUtil.toJson(response));

        return new ModelAndView("pay/success");
    }


}

這個可以自己去下載就可以,下面看一下一下如何運行

項目說明

需要在Jdk版本>1.8上運行
本項目采用SpringBoot1.5.1開發(fā)

項目結(jié)構(gòu)
src/main/java/com/github/lly835
├── PayDemoApplication.java    
├── ServletInitializer.java
├── config
│   └── PayConfig.java       //支付密鑰配置類
└── controller
    └── PayController.java   //支付調(diào)用
運行示例

運行前需要先配置好密鑰, 見PayConfig.java
運行命令

git clone https://github.com/Pay-Group/best-pay-demo
cd best-pay-demo
mvn clean package
java -jar target/*.war

瀏覽器訪問http://127.0.0.1:8080/pay

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/71517.html

相關(guān)文章

  • 推薦10個Java方向最熱門的開源項目(8月)

    摘要:設(shè)計模式可以通過提供經(jīng)過驗證的經(jīng)過驗證的開發(fā)范例來加速開發(fā)過程。將流程作為突破點,并在多個領(lǐng)域工作,包括流量控制,并發(fā),斷路和負(fù)載保護(hù),以保護(hù)服務(wù)穩(wěn)定性。 1. JCSprout(Java核心知識庫) Github地址: https://github.com/crossoverJie/JCSprout star: 12k 介紹: 處于萌芽階段的 Java 核心知識庫。 2....

    wushuiyong 評論0 收藏0
  • 淺析微信支付開發(fā)前的準(zhǔn)備

    摘要:本文是淺析微信支付系列文章的第三篇,主要會講一下在開發(fā)前的一些注意事項。淺析微信支付系列已經(jīng)更新兩篇了喲,沒有看過的朋友們可以看一下。開通微信支付需要注冊登陸微信商戶平臺,微信支付相關(guān)的信息都需要在這個平臺上進(jìn)行操作。 本文是【淺析微信支付】系列文章的第三篇,主要會講一下在開發(fā)前的一些注意事項。 淺析微信支付系列已經(jīng)更新兩篇了喲~,沒有看過的朋友們可以看一下。 淺析微信支付:前篇大綱...

    yanest 評論0 收藏0
  • 淺析微信支付:前篇大綱

    摘要:淺析微信支付前篇大綱本文是淺析微信支付系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經(jīng)驗,與君共勉。下面講一下我是如何去學(xué)習(xí)微信支付的。 淺析微信支付:前篇大綱 本文是【淺析微信支付】系列文章的第一篇,主要會介紹一下為何寫下這個系列以及對于微信支付的一點小經(jīng)驗,與君共勉。 以下會分幾個步驟講一下我學(xué)習(xí)微信支付的過程,也是一部辛酸史,也是希望朋友們不要再次跌進(jìn)...

    mayaohua 評論0 收藏0
  • 微信小程序開發(fā)早知道

    摘要:小程序仍在不斷更新和完善,舊代碼可能會因不符合新政策,在下次發(fā)布的時候無法正常運行。用戶微信支付后,需要后臺推送消息到服務(wù)器,才能確認(rèn)支付成功。小程序也存在兼容性問題,對待不愿更新微信的用戶,要像對待忠實的用戶一樣,小程序基礎(chǔ)庫版本分布。 小程序沒有跳轉(zhuǎn)公眾號、跳轉(zhuǎn)公眾號圖文素材的能力。除非用戶通過掃描二維碼進(jìn)入小程序的情景,可以顯示關(guān)注公眾號組件。公眾號菜單、公眾號圖文素材可以打開...

    lyning 評論0 收藏0
  • 深究WeixinJSBridge未定義之因

    摘要:未使用微信如果網(wǎng)頁中未使用微信用戶在微信中打開網(wǎng)站可能會觸發(fā)這個錯誤,目前看來只有忽略。關(guān)于微信支付方法監(jiān)聽事件之后再進(jìn)行下一步操作方法直接使用文檔中的支付代碼,不要使用公眾號支付文檔里面的代碼。 Fundebug并沒有使用微信JS-SDK,然而卻收到了WeixinJSBridge is not defined的報錯: showImg(https://segmentfault.com...

    gself 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<