目錄
一、開通功能
二、下載憑證
三、轉帳
發布
首頁 微信小程式 微信開發 企業轉帳到用戶介面的開通

企業轉帳到用戶介面的開通

Mar 16, 2018 pm 01:09 PM
開通 介面 使用者

這次帶給大家企業轉帳到用戶介面的開通,企業轉帳到用戶介面開通的注意事項有哪些,以下就是實戰案例,一起來看一下。

在微信公眾號支付的API中沒有這個接口,如果企業需要給用戶轉賬,或者讓用戶提現或者給用戶發紅包等需要再商家平台中的產品中心分別開通。 

一、開通功能

開通就是點一下,很簡單。但要注意的是支援向用戶轉帳的帳戶和收到用戶付款的帳戶不是同一個,而為了滿足此功能,你需要先用財付通進行充值(交易中心--資金管理--充值)。

二、下載憑證

憑證下載在帳號中心--API安全,現在需要手機驗證碼和商家平台登入密碼。下載之後再window上安裝,安裝的密碼是商家號碼。

安裝之後並將憑證放在網站目錄下,用於下一步在程式碼中進行驗證。

三、轉帳

微信現在提供的demo中沒有這一塊,以下就根據官方的demo做一些修改。和之前的範例類似,我們都需要用WxPayData物件來操作我們的參數。定義一個TransfersPay物件。

  public class TransfersPay
    {        public string openid { get; set; }        public int amount { get; set; }        public string partner_trade_no { get; set; }        public string re_user_name { get; set; }        public string spbill_create_ip { get; set; }        public WxPayData GetTransfersApiParameters()
        {
            WxPayData apiParam = new WxPayData();
            apiParam.SetValue("partner_trade_no", partner_trade_no);
            apiParam.SetValue("openid", openid);
            apiParam.SetValue("check_name", "NO_CHECK");
            apiParam.SetValue("amount", amount);
            apiParam.SetValue("desc", "提现");
            apiParam.SetValue("spbill_create_ip", spbill_create_ip);
            apiParam.SetValue("re_user_name", re_user_name);            return apiParam;
        }
    }
登入後複製

在官方demo中的WxpayApi中已經包含了公眾號支付的相關方法。再增加一個Transfers的方法用來轉帳:

 public static WxPayData Transfers(WxPayData inputData, int timeOut = 6)
        {            var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
            inputData.SetValue("mch_appid", WxPayConfig.APPID);//公众账号ID
            inputData.SetValue("mchid", WxPayConfig.MCHID);//商户号
            inputData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());//随机字符串
            inputData.SetValue("sign", inputData.MakeSign());//签名
            string xml = inputData.ToXml();            var start = DateTime.Now;
            string response = HttpService.Post(xml, url, true, timeOut);            // Portal.MVC.Logger.Info("WxPayApi"+ "UnfiedOrder response : " + response);
            var end = DateTime.Now;            int timeCost = (int)((end - start).TotalMilliseconds);
            WxPayData result = new WxPayData();
            result.FromXml(response);
            ReportCostTime(url, timeCost, result);//测速上报
            return result;
        }
登入後複製

稍微要注意下的地方就是幾個預設參數的名字和別的方法不一樣,例如appid和mch_id。轉帳中是mch_appid和mchid,紅包中又叫wxappid和mch_id。然後注意到httpService.post方法第三個參數是帶true的。也就是會使用到憑證。進入post方法我們可以看到:

         //是否使用证书
                if (isUseCert)
                {                    string path = HttpContext.Current.Request.PhysicalApplicationPath;                    X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);
                    request.ClientCertificates.Add(cert);
                    Log.Debug("WxPayApi", "PostXml used cert");
                }
登入後複製

這裡使用到了憑證的路徑和密碼,密碼即商家號碼。這一切準備好之後就可以controller中進行轉帳了:

     [LoginValid]        public ActionResult CashTransfers(string orderNumber)
        {            //var order = new Order(){Amount = 1};           // var openid = "oBSBmwQjqwjfzQlKsFNjxFLSixxx";
            var user = _workContext.CurrentUser;            var order = _paymentService.GetOrderByOrderNumber(orderNumber);            var transfer = new TransfersPay
            {
                openid = user.OpenId,
                amount = (int) order.Amount*100,
                partner_trade_no = order.OrderNumber,
                re_user_name = "stoneniqiu",
                spbill_create_ip = _webHelper.GetCurrentIpAddress()
            };            var data = transfer.GetTransfersApiParameters();            var result = WxPayApi.Transfers(data);            return Content(result.ToPrintStr());
        }
登入後複製

得到結果

這樣就實現了轉帳/提現的功能。

發布

在正式的環境中,我們需要先建立自己的訂單,然後向微信請求轉賬,成功之後對自己的訂單進行處理。 CashTransfers方法稍作調整。

       [LoginValid]        public ActionResult CashTransfers(string orderNumber)
        {
            var user = _workContext.CurrentUser;            var order = _paymentService.GetOrderByOrderNumber(orderNumber);            if (string.IsNullOrEmpty(user.OpenId))
            {                return Json(new PortalResult("请用微信登录!"));
            }            if (order == null || order.OrderState != OrderState.Padding)
            {                return Json(new PortalResult("订单有误!"));
            }            
            var transfer = new TransfersPay
            {
                openid = user.OpenId,
                amount = (int) order.Amount*100,
                partner_trade_no = order.OrderNumber,
                re_user_name = "stoneniqiu",
                spbill_create_ip = _webHelper.GetCurrentIpAddress()
            };            var data = transfer.GetTransfersApiParameters();            var result = WxPayApi.Transfers(data);            if (result.GetValue("result_code").ToString() == "SUCCESS")
            {                return Json(new PortalResult(true, "提现成功"));
            }            return Json(new PortalResult(false, result.GetValue("return_msg").ToString()));            
        }
登入後複製

另一個要注意的是,發布之後老是出現操作超時的錯誤,建議就是修改超時時間為30秒。預設的6秒容易逾時。 統一下單的時候也是。

 public static WxPayData Transfers(WxPayData inputData, int timeOut = 30)
登入後複製

如果企業帳戶的錢沒了,會出現以下提示:

#相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

webpack自動刷新與解析的使用

H5的快取Manifest的使用


以上是企業轉帳到用戶介面的開通的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何用小紅書號找出用戶?能查到手機號碼嗎? 如何用小紅書號找出用戶?能查到手機號碼嗎? Mar 22, 2024 am 08:40 AM

隨著社群媒體的迅速發展,小紅書已經成為了備受青睞的社群平台之一。用戶可以透過建立小紅書號來展示個人身份,並與其他用戶交流互動。如果你需要找某個用戶的小紅書號碼,可以按照以下簡單步驟來操作。一、如何用小紅書號找出用戶? 1.開啟小紅書APP,點選右下角的「發現」按鈕,然後選擇「筆記」選項。 2.在筆記清單中,找到你想找的用戶發布的筆記。點擊進入筆記詳情頁。 3.在筆記詳情頁中,點選使用者頭像下方的「追蹤」按鈕,即可進入該使用者的個人首頁。 4.在使用者個人主頁右上角,點選三個點按鈕,然後選擇「個人資訊

以超級使用者登入Ubuntu 以超級使用者登入Ubuntu Mar 20, 2024 am 10:55 AM

在Ubuntu系統中,root使用者通常是停用狀態的。要啟動root用戶,可以使用passwd指令設定密碼,然後使用su-指令以root身分登入。根用戶是具有系統管理權限且不受限制的使用者。他擁有存取和修改檔案、使用者管理、軟體安裝和刪除,以及系統配置變更等權限。根用戶與一般用戶有著明顯的區別,根用戶擁有系統中最高的權限和更廣泛的控制權。根用戶可以執行重要的系統命令和編輯系統文件,而普通用戶則無法做到這一點。在本指南中,我將探討Ubuntu根用戶,如何以根用戶身份登錄,以及它與一般用戶的不同之處。注意

抖音廣告分成怎麼開通?抖音廣告分成怎麼分的? 抖音廣告分成怎麼開通?抖音廣告分成怎麼分的? Mar 07, 2024 pm 01:46 PM

抖音作為全球最大的短影片平台之一,吸引了許多品牌和商家的注意。在抖音上投放廣告是許多企業宣傳推廣的重要手段。那麼,要如何開通抖音廣告分成模式呢?以下將圍繞這個問題展開討論。一、抖音廣告分成怎麼開通?要開通抖音廣告分成,你需要進行以下步驟:註冊並登入:在抖音廣告平台上註冊帳號,並使用該帳號登入進入廣告主後台。建立廣告計劃:在廣告主後台,選擇建立廣告計劃,並填寫相關的廣告訊息,包括廣告類型、投放時段、預算等。定位受眾:根據產品或服務的特點,選擇適合的目標受眾群體,設定地理、年齡、性別等定向條件。制

電腦主機板內部介面都有什麼 推薦電腦主機板內部介面介紹 電腦主機板內部介面都有什麼 推薦電腦主機板內部介面介紹 Mar 12, 2024 pm 04:34 PM

我們在電腦組裝的過程中,安裝過程雖然簡單,不過往往都是在接線上遇到問題,經常有裝機用戶誤將CPU散熱器的供電線插到了SYS_FAN上,雖然風扇可以轉動,不過在開機可能會有F1報錯“CPUFanError”,同時也導致了CPU散熱器無法智慧調速。下面裝機之家分享一下電腦主機板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT介面知識科普。電腦主機板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT介面知識科普1、CPU_FANCPU_FAN是CPU散熱器專用接口,12V工作

Go語言中常見的程式設計範式和設計模式 Go語言中常見的程式設計範式和設計模式 Mar 04, 2024 pm 06:06 PM

Go語言作為一門現代化的、高效的程式語言,擁有豐富的程式設計範式和設計模式可以幫助開發者編寫高品質、可維護的程式碼。本文將介紹Go語言中常見的程式設計範式和設計模式,並提供具體的程式碼範例。 1.物件導向程式設計在Go語言中,可以使用結構體和方法實現物件導向程式設計。透過定義結構體和給結構體綁定方法,可以實現資料封裝和行為綁定在一起的物件導向特性。 packagemaini

微信分付怎麼開通?微信分付開通設置 微信分付怎麼開通?微信分付開通設置 Mar 14, 2024 am 10:00 AM

微信是一款由騰訊公司推出的即時通訊應用,支援跨平台、跨業者的訊息傳送與接收,功能豐富,包括語音、視訊聊天、朋友圈分享等,深受廣大用戶喜愛。而微信分付則是微信錢包中的一種支付功能,提供用戶更便利的支付體驗。我們一起學習微信分付的開通方式吧。微信分付怎麼開通?微信分付開通設定1、開啟手機微信,點選右下角的【我】,進入個人首頁,2、點選【服務】選項。 3.然後點選【錢包】圖示。 4.在【錢包】板塊下,點選【分付】進入介紹頁面。 5.在分付介紹頁面下方,點選【看我的分付額度】按鈕。 6.認真閱讀分付的

Linux系統中的使用者密碼儲存機制解析 Linux系統中的使用者密碼儲存機制解析 Mar 20, 2024 pm 04:27 PM

Linux系統中的使用者密碼儲存機制解析在Linux系統中,使用者密碼的儲存是非常重要的安全機制之一。本文將解析Linux系統中使用者密碼的儲存機制,包括密碼的加密儲存、密碼的驗證過程以及如何安全地管理使用者密碼。同時,將透過具體的程式碼範例展示密碼儲存的實際操作流程。一、密碼的加密儲存在Linux系統中,使用者密碼並不是以明文的形式儲存在系統中,而是經過加密後儲存。 L

Oracle資料庫:一個使用者是否可以擁有多個表空間? Oracle資料庫:一個使用者是否可以擁有多個表空間? Mar 03, 2024 am 09:24 AM

Oracle資料庫是一種常用的關聯式資料庫管理系統,許多使用者都會遇到關於表空間的使用問題。在Oracle資料庫中,一個使用者可以擁有多個表空間,這樣可以更好地管理資料儲存和組織。本文將探討一個使用者如何在Oracle資料庫中擁有多個表空間,並提供具體的程式碼範例。在Oracle資料庫中,表空間是用來儲存表格、索引、視圖等物件的邏輯結構。每個資料庫至少有一個表空間,

See all articles