<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內容,歡迎關注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java paypal

    文檔

    java paypal

    paypal支付有IPN和PDT兩種通知方式,paypal流程步驟:1、創建應用程序。2、啟用與palPal的連接。3、應用評論。4、構建按鈕。5、獲取授權碼。6、獲取訪問令牌。7、為access_token交換refresh_token。8、獲取客戶信息。9、測試集成。10、上線。
    推薦度:
    導讀paypal支付有IPN和PDT兩種通知方式,paypal流程步驟:1、創建應用程序。2、啟用與palPal的連接。3、應用評論。4、構建按鈕。5、獲取授權碼。6、獲取訪問令牌。7、為access_token交換refresh_token。8、獲取客戶信息。9、測試集成。10、上線。

    java paypal是什么,讓我們一起了解一下?

    paypal支付的IPN和PDT兩種通知方式,IPN異步通知,可能會有時延,但可靠性高,當接入方主機不可達時,有重試機制保證IPN通知盡量抵達接入方服務器。接入方收到IPN通知后,需要對其確認。

    接入方收到IPN通知后,需要對其確認。確認方法為,把接收到的IPN通知原封不動的作為請求體,調用IPN確認接口。PDT通知是是實時的,但可靠性不高,因為只會通知一次,沒有重試機制,一旦接入方出現主機不可達,這樣的消息將會被丟失。官方推薦,IPN通知和PDT通知最好混合使用,以滿足時效性和可靠性的保證。我們采用了IPN和PDT兩種通知機制。

    paypal流程有如下幾步:

    1、創建應用程序

    2、啟用與palPal的連接

    3、應用評論

    4、構建按鈕

    5、獲取授權碼

    6、獲取訪問令牌

    7、為access_token交換refresh_token

    8、獲取客戶信息

    9、測試集成

    10、上線

    通過springboot環境,java如下:

    @Controller
    @RequestMapping("/paypal")
    public?class?PaymentController?{
    ????private?Logger?log?=?LoggerFactory.getLogger(getClass());
    ?
    ????@Autowired
    ????private?PaypalService?paypalService;
    ?
    ????//?回調地址
    ????private?static?Integer?orderId?=?null;
    ????private?static?String?SUCCESS_URL?=?"https://www.baidu.com";
    ????private?static?String?FAIL_URL?=?"http://www.163.com";
    ????private?static?String?CANCEL_URL?=?"https://www.autohome.com.cn/shenzhen/?pvareaid=1001299";
    ?
    ????@RequestMapping(method?=?RequestMethod.GET)
    ????public?String?index(){
    ????????return?"index";
    ????}
    ?
    ???/**
    ?????*?訂單支付
    ?????*?@param
    ?????*?@return
    ?????*/
    ????@RequestMapping(method?=?RequestMethod.POST,?value?=?"/payment")
    ????public?String?payment(HttpServletRequest?request,?@RequestBody?PaymentEx?paymentEx){
    ?
    ????????if?(null?==?paymentEx?||?null?==?paymentEx.getOrderId()?||?null?==?paymentEx.getOrderAddressEx()?||?null?==?paymentEx.getOrderItemExList())?{
    ????????????return?"redirect:"?+?FAIL_URL;
    ????????}
    ????????orderId?=?paymentEx.getOrderId();
    ????????SUCCESS_URL?=?paymentEx.getSuccessUrl();
    ????????FAIL_URL?=?paymentEx.getFailUrl();
    ????????CANCEL_URL?=?paymentEx.getCancelUrl();
    ????????//?調用本地?successPay方法
    ????????String?successUrl?=?URLUtils.getBaseURl(request)?+?"/"?+?"paypal/successPay";
    ????????//?調用本地?cancel方法
    ????????String?cancelUrl?=?URLUtils.getBaseURl(request)?+?"/"?+?"paypal/cancelPay";
    ????????try?{
    ????????????Payment?payment?=?paypalService.createPayment(paymentEx,?successUrl,cancelUrl);
    ????????????for(Links?links?:?payment.getLinks()){
    ????????????????if(links.getRel().equals("approval_url")){
    ????????????????????//?客戶付款登陸地址
    ????????????????????return?"redirect:"?+?links.getHref();
    ????????????????}
    ????????????}
    ????????}?catch?(PayPalRESTException?e)?{
    ????????????log.error(e.getMessage());
    ????????????return?"redirect:"?+?FAIL_URL;
    ????????}
    ????????return?"redirect:"?+?FAIL_URL;
    ????}
    ?
    ????/**
    ?????*?取消支付
    ?????*?@return
    ?????*/
    ????@RequestMapping(method?=?RequestMethod.GET,?value?=?"/cancelPay")
    ????public?String?cancelPay(){
    ????????return?"redirect:"?+?CANCEL_URL;
    ????}
    ?
    ????/**
    ?????*?支付成功
    ?????*?@param?paymentId
    ?????*?@param?payerId
    ?????*?@return
    ?????*/
    ????@RequestMapping(method?=?RequestMethod.GET,?value?=?"/successPay")
    ????public?String?successPay(@RequestParam("paymentId")?String?paymentId,?@RequestParam("PayerID")?String?payerId){
    ????????try?{
    ????????????/**
    ?????????????*?支付
    ?????????????*/
    ????????????Payment?payment?=?paypalService.executePayment(paymentId,?payerId);
    ?
    ????????????/**
    ?????????????*?保存支付信息
    ?????????????*/
    ????????????ShopOrderPayment?orderPayment?=?new?ShopOrderPayment();
    ????????????orderPayment.setOrderId(orderId);
    ????????????//?訂單總價
    ???????????String?total?=?payment.getTransactions().get(0).getAmount().getTotal();
    ????????????orderPayment.setAmountPaid(new?BigDecimal(total));
    ????????????//?交易號
    ???????????String?transationId?=?payment.getTransactions().get(0).getRelatedResources().get(0).getSale().getId();
    ????????????orderPayment.setTransactionId(transationId);
    ????????????paypalService.savePayment(orderPayment);
    ?
    ????????????/**
    ?????????????*?支付成功重定向頁面
    ?????????????*/
    ????????????if(payment.getState().equals("approved")){
    ????????????????return?"redirect:"?+?SUCCESS_URL;
    ????????????}
    ????????}?catch?(PayPalRESTException?e)?{
    ????????????log.error(e.getMessage());
    ????????????return?"redirect:"?+?FAIL_URL;
    ????????}
    ????????return?"redirect:"?+?FAIL_URL;
    ????}
    }

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java paypal

    paypal支付有IPN和PDT兩種通知方式,paypal流程步驟:1、創建應用程序。2、啟用與palPal的連接。3、應用評論。4、構建按鈕。5、獲取授權碼。6、獲取訪問令牌。7、為access_token交換refresh_token。8、獲取客戶信息。9、測試集成。10、上線。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關推薦
    java phoenix java ping java pipeline java rsa公鑰加密 java rsa私鑰加密 java rtp java runnable java runtime.exec java rxjava java sandbox java script java selector java selenium java semaphore java separator java sequence java serializable java serializable接口 java serialversionuid java setlayout java path java rsa加密 java rotate java reverse java reverse() java retrofit java resume java resultset java result java rest java requests java partial java request java parser java repeat java parse java pandas java override java render java region
    Top 亚洲日韩精品无码专区网址| 亚洲精品国产高清在线观看| 国产精品亚洲va在线观看| 久热这里只精品99国产6_99| 国产精品午夜无码体验区| 久久99精品久久只有精品| 国产乱人伦偷精品视频免观看| 久久久久99精品成人片| 精品无人乱码一区二区三区 | 伊人久久精品影院| 亚洲国产成人超福利久久精品| 国产精品最新国产精品第十页 | 久久777国产线看观看精品卜 | 亚洲AV无码成人精品区狼人影院| 在线涩涩免费观看国产精品| 国产精品蜜臂在线观看| 精品无码一区二区三区电影| 国产精品视频一区二区噜噜| 亚洲成人国产精品| 久久精品免费一区二区喷潮| 99国产精品热久久久久久夜夜嗨 | 一区二区精品视频| 亚洲AV永久无码精品放毛片| 91一区二区在线观看精品| 亚洲午夜国产精品无码老牛影视| 无码精品久久一区二区三区| 色妞WWW精品免费视频| 精品久久久久香蕉网| 久久丫精品国产亚洲av| 中文字幕在线精品视频入口一区| 国产精品99在线播放| 国产日韩精品一区二区三区| 国产精品乱码久久久久久软件| 精品人妻无码区在线视频| 午夜DY888国产精品影院| 国产午夜精品一区二区三区漫画| 亚洲精品网站在线观看不卡无广告| 热99re久久精品精品免费| 亚洲精品一二三区| 538精品在线视频| 麻豆国产在线精品国偷产拍 |