1. 程式人生 > >node egg框架處理微信支付成功回撥xml資料

node egg框架處理微信支付成功回撥xml資料

直接上詳細程式碼

首先使用egg框架中介軟體,在app目錄建middleware資料夾,再建立一個js檔案如

該js中的程式碼:

module.exports = () => {
    return async function (ctx, next) {
        var bodyParser = require('body-parser');
        ctx.app.use(bodyParser.urlencoded({
          extended:true
        }));
        await next();
    }
};

然後在路由中使用該中介軟體(此處我在'/wxpay'的回撥路由中呼叫,具體結合自己實際)

  const xmlparse = app.middleware.xmlparse();
  app.post('/wxpay',xmlparse, app.controller.xcx.wxpay.wxPayCallBack);

最後是路由方法中的程式碼(此處我直接在controller層寫的程式碼,自己也可在service層呼叫)

'use strict'
const Controller = require('egg').Controller;
const xml2js = require('xml2js').parseString;
class wxpayController extends Controller{
    async wxPayCallBack(){
        let data = '';
        let json = {};
        this.ctx.req.setEncoding('utf8');
        this.ctx.req.on('data',function(chunk){
           data += chunk;
        });
        let that = this;
        this.ctx.req.on('end',function(){
            xml2js(data,{explicitArray:false}, function (err, json) {
                console.log(json);//這裡的json便是xml轉為json的內容
                that.ctx.body = 'success';
            });
            
        });
    }
}
module.exports = wxpayController;
注:其中使用了兩個元件(body-parser、xml2js)可自行安裝

相關推薦

node egg框架處理支付成功xml資料

直接上詳細程式碼首先使用egg框架中介軟體,在app目錄建middleware資料夾,再建立一個js檔案如該js中的程式碼:module.exports = () => { return async function (ctx, next) {

python django 支付成功url(notify_url)

微信官方文件:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7 首先 這個 notify_url 有倆個要求  1.公網能直接訪問的  2.不能攜帶引數 (比如你的訂單id) 返回的內容微信請求的內容,為

支付非同步,帶你解決支付的深坑

1.首先我們先下載微信支付的伺服器端demo 2.個檔案作用介紹 index.jsp  下單  payRequest.jsp  獲取微信支付prepay_id等。 重點我說說這個payNotifyUrl.jsp

支付非同步 獲取引數值

import java.io.StringReader; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import

支付notify_url失敗

問題:微信支付成功,但是沒有進入回撥介面。 解決:微信公眾平臺=》運維中心=》介面報警=》加入報警群!!! 1.WxPay.Api.php中unifiedOrder把$xml = $inputObj->ToXml();$xml寫進log。 2.not

iOS 關於友盟分享成功不走的問題

不得不說,友盟的客服以及論壇服務很不周到,特別是最近要獲取友盟微信分享是否成功的狀態,在分享回撥里根本拿不到,回撥根本不走。於是檢視友盟論壇,提問的人很多,解答的完全沒有,再諮詢線上客服,回覆答不到點子上,或者就要你看文件或demo,然而你的demo也有問題啊。 問題描述:

支付調處理

led user date fin dev org 信息 reader content 1.封裝工具類:   包括的方法實現:     xml轉Map,Map轉xml,生成微信支付簽名sign,簽名的校驗,把Map轉為SortMap(有序) package net

處理支付的非同步

/** * 微信支付非同步回撥(只有非同步回撥對訂單進行處理) */ public function wchatUrlBack() { $postStr = file_get_contents('php://input'); i

公眾平臺開發[4] —— ThinkPHP 框架支付

    提示:文章佈局尷尬症患者,請轉移>>>MarkDown文章連結 <<<     宣告:原文主要摘自白俊遙部落格 ,部分內容針對個人事例已作修改,主要用

ectouch 支付成功後訂單狀態未改變的解決辦法

微信支付支付成功後,返回到mobile/wx_native_callback.php 之前程式碼 define('IN_ECS', true); require(dirname(__FILE__) . '/include/init.php'); require(ROOT_P

處理支付非同步處理

1、驗證簽名,防止偽造 2、支付狀態校驗 3、支付金額校驗(包含訂單是否存在校驗) 4、支付人,是否是下單人(根據具體業務是

Android利用SDK分享到教程,分享結果錯誤解決和注意點

在正式開始之前這裡要著囉嗦一下,進來的同學一定要看,在申請應用的時候要填一個簽名,這個簽名是由應用的簽名檔案keystore決定的,那麼你在填這個簽名的時候,一定要把你的應用用正式的keyStore生成apk,安裝到手機,然後用微信提供的獲取應用簽名的apk工具獲取你應用

關於登入網站地址

8080後面不要帶   "/" 請求code時中的 redirect_uri 不需要進行編碼處理!!! 我寫的是 http://192.168.1.254:8080/weixin_success_callback.jsp  放在webapp下面即可

友盟分享 分享沒有資訊

微信分享沒有回撥資訊 問題:分享成功,取消,失敗沒有提示資訊 不知道現在還有沒有用友盟微信分享遇到問題的,如果有,希望這裡的內容能幫到你。 其實友盟官網已經說得很清楚了, 只不過我很多人有時候直接baidu,查不到解決辦法,而且有些解決辦法是比較老

支付----PC掃碼支付(查詢支付訂單判斷是否支付成功)

微信支付 c#webapi建議前端輪番查詢訂單狀態 #region 查詢掃碼訂單狀態 /// <summary> /// 查詢掃碼支付狀態 /// </summary> /// <param name=&

Java開發SSM框架支付

etc ray 企業 展示 system 都在 pes generator 程序開發 微信小程序的Java支付開發一直是一塊坑,網上的教程也是琳瑯滿目。筆者六月的時候接觸到了微信的小程序開發摸到了微信支付方面的東西,騰訊的官方文檔也是一言難盡很多地方看不懂,而且官方也沒有提

支付:伺服器(Java)統一下單獲取prepay_id成功,前端公眾號裡呼叫jsapi提示支付驗證簽名失敗

昨天折騰一宿,就是因為這個問題: 微信支付:伺服器統一下單獲取prepay_id成功,前端公眾號裡呼叫jsapi提示支付驗證簽名失敗(簽名工具測試簽名正確) 這裡預設的是簽名方式是MD5,前後兩個簽名方式不一至導致的“支付驗證簽名失敗”。 解決方法:前後兩個簽名方式調成

Android H5支付 webview設定referer 請求頭無效問題解釋和詳細處理方案

Android H5微信支付(或H5視訊連結)webview設定referer 請求頭無效問題解釋和詳細處理方案(附原始碼) 本文說明 這次也是專案中所碰到的問題總結,這次是專案需要對接新的一套第三方微信H5支付。其實開始是很簡單的只需要一個集合了所以必要引數後提交後臺返回的支付連

支付 java 服務端demo (v3版本app支付 springMVC框架中)

//靜態資源 /** * @author 徐小驥 * @version :2016-5-9 上午11:43:48 */ public class WeixinPayConstants { public static final String appid =

Tp框架引入微支付類及支付流程

一、對於微信支付(引入微信支付類) 由於微信支付檔案比較多,一個檔案可能有很多類,所以使用Tp框架的時候 使用Vendor()來引入第三方的類庫 該微信支付類檔案放在ThinkPHP\Library\Vendor目錄下: 引入方法:Vendor(wxpay.wxpay)引入