亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
2、企業(yè)付款A(yù)PI
接口地址
是否需要證書
請求參數(shù)
首頁 微信小程序 微信開發(fā) C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

Mar 07, 2017 am 09:41 AM

1、企業(yè)付款的介紹

所謂企業(yè)付款指的是,在功能開放后諸如保險行業(yè)的客戶理賠、退保、商品退款、發(fā)放征集活動獎金、抽獎互動等操作都可以通過企業(yè)付款完成。而此前,微信支付只能提供客戶向企業(yè)單向付款。

商戶如果需要給用戶付款,可以直接將錢打入用戶的“微信零錢”中,微信支付將做零錢入賬消息通知,零錢收支明細(xì)會展示相應(yīng)記錄。針對無零錢賬戶的歷史客戶端版本,資金將進(jìn)入用戶的紅包賬戶,微信支付無消息通知用戶,企業(yè)可選擇自行觸達(dá)用戶。

通過認(rèn)證的企業(yè)號可以開通微信支付功能。通過認(rèn)證的企業(yè)號可以管理平臺的“服務(wù)中心”的“微信支付”入口里進(jìn)行微信支付功能申請。而開通微信支付功能后,企業(yè)號將擁有兩項(xiàng)功能:收款和付款。如果是用戶號對企業(yè)號付款,款項(xiàng)將會進(jìn)入企業(yè)號所關(guān)聯(lián)的商戶號中。同時,企業(yè)號可以通過微信紅包或微信轉(zhuǎn)賬的形式對用戶號付款。

企業(yè)付款,提供企業(yè)向用戶付款的功能,支持企業(yè)通過API接口付款,或通過微信支付商戶平臺網(wǎng)頁功能操作付款。

涉及資金操作的功能,安全性要求較高,需要操作員安裝證書(商戶平臺-賬戶設(shè)置-密碼安全-操作證書);通過API或網(wǎng)頁操作,付款至目標(biāo)用戶(企業(yè)可根據(jù)APPID+OpenID鎖定目標(biāo)用戶)。針對已實(shí)名認(rèn)證的用戶,微信支付可提供校驗(yàn)真實(shí)姓名一致性的可選功能。?

企業(yè)付款提示:

? ? ◆ 給同一個實(shí)名用戶付款,單筆單日限額2W/2W

? ??◆ 給同一個非實(shí)名用戶付款,單筆單日限額2000/2000

? ??◆ 一個商戶同一日付款總額限額100W

? ??◆僅支持商戶號已綁定的APPID;

? ??◆針對付款的目標(biāo)用戶,已微信支付實(shí)名認(rèn)證的用戶可提供校驗(yàn)真實(shí)姓名的功能,未實(shí)名認(rèn)證的用戶無法校驗(yàn),企業(yè)可根據(jù)自身業(yè)務(wù)的安全級別選擇驗(yàn)證類型;

? ??◆付款金額必須小于或等于商戶當(dāng)前可用余額的金額;

? ??◆?已付款的記錄,企業(yè)可通過企業(yè)付款查詢查看相應(yīng)數(shù)據(jù)。

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

?

2、企業(yè)付款A(yù)PI

企業(yè)付款業(yè)務(wù)是基于微信支付商戶平臺的資金管理能力,為了協(xié)助商戶方便地實(shí)現(xiàn)企業(yè)向個人付款,針對部分有開發(fā)能力的商戶,提供通過API完成企業(yè)付款的功能。?
比如目前的保險行業(yè)向客戶退保、給付、理賠。

企業(yè)付款將使用商戶的可用余額,需確??捎糜囝~充足。查看可用余額、充值、提現(xiàn)請登錄商戶平臺“資金管理”進(jìn)行操作。


接口地址


接口鏈接:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers


是否需要證書


請求需要雙向證書。 詳見證書使用

請求參數(shù)

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

提交數(shù)據(jù)示例:

<xml>
<mch_appid>wxe062425f740c30d8</mch_appid>
<mchid>10000098</mchid>
<nonce_str>3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str>
<partner_trade_no>100000982014120919616</partner_trade_no>
<openid>ohO4Gt7wVPxIT1A9GjFaMYMiZY1s</openid>
<check_name>OPTION_CHECK</check_name>
<re_user_name>張三</re_user_name>
<amount>100</amount>
<desc>節(jié)日快樂!</desc>
<spbill_create_ip>10.2.3.10</spbill_create_ip>
<sign>C97BDBACF37622775366F38B629F45E3</sign>
</xml>

成功返回的數(shù)據(jù)示例:

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[]]></return_msg>
<mch_appid><![CDATA[wxec38b8ff840bd989]]></mch_appid>
<mchid><![CDATA[10013274]]></mchid>
<device_info><![CDATA[]]></device_info>
<nonce_str><![CDATA[lxuDzMnRjpcXzxLx0q]]></nonce_str>
<result_code><![CDATA[SUCCESS]]></result_code>
<partner_trade_no><![CDATA[10013574201505191526582441]]></partner_trade_no>
<payment_no><![CDATA[1000018301201505190181489473]]></payment_no>
<payment_time><![CDATA[2015-05-19 15:26:59]]></payment_time>
</xml>

根據(jù)上面的接口描述,以及輸入,返回參數(shù),我們可以構(gòu)建對應(yīng)的C#代碼的接口

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

根據(jù)上面的接口定義,我們可以定義接口信息如下所示

/// <summary>
    /// 微信支付接口
    /// </summary>
    public interface ITenPayApi
    {  

        /// <summary>
        /// 企業(yè)付款(請求需要雙向證書)
        /// 企業(yè)付款業(yè)務(wù)是基于微信支付商戶平臺的資金管理能力,為了協(xié)助商戶方便地實(shí)現(xiàn)企業(yè)向個人付款,
        /// 針對部分有開發(fā)能力的商戶,提供通過API完成企業(yè)付款的功能。 比如目前的保險行業(yè)向客戶退保、給付、理賠。
        /// 企業(yè)付款將使用商戶的可用余額,需確??捎糜囝~充足。查看可用余額、充值、提現(xiàn)請登錄商戶平臺“資金管理”進(jìn)行操作。https://pay.weixin.qq.com/ 
        /// 注意:與商戶微信支付收款資金并非同一賬戶,需要單獨(dú)充值。
        /// </summary>
        /// <param name="json">企業(yè)支付數(shù)據(jù)</param>
        /// <returns></returns>
        CorpPayResult CorpPay(CorpPayJson json);

        ..............

其中上面的CorpPayJson 和CorpPayResult 分別是傳入?yún)?shù)和獲取的結(jié)果內(nèi)容,兩者的對象信息根據(jù)參數(shù)進(jìn)行定義即可。

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

/// <summary>
    /// 企業(yè)付款的數(shù)據(jù)信息
    /// </summary>
    public class CorpPayJson
    {
        public CorpPayJson()
        {
            this.check_name = "FORCE_CHECK";
        }

        /// <summary>
        /// 微信支付分配的終端設(shè)備號
        /// </summary>
        public string device_info { get; set; }

        /// <summary>
        /// 用戶openid
        /// </summary>
        public string openid { get; set; }

        /// <summary>
        /// 校驗(yàn)用戶姓名選項(xiàng),可以使用 PayCheckName枚舉對象獲取名稱
        /// NO_CHECK:不校驗(yàn)真實(shí)姓名 
        /// FORCE_CHECK:強(qiáng)校驗(yàn)真實(shí)姓名(未實(shí)名認(rèn)證的用戶會校驗(yàn)失敗,無法轉(zhuǎn)賬) 
        /// OPTION_CHECK:針對已實(shí)名認(rèn)證的用戶才校驗(yàn)真實(shí)姓名(未實(shí)名認(rèn)證用戶不校驗(yàn),可以轉(zhuǎn)賬成功)
        /// </summary>
        public string check_name { get; set; }

        /// <summary>
        /// 收款用戶真實(shí)姓名。 
        /// 如果check_name設(shè)置為FORCE_CHECK或OPTION_CHECK,則必填用戶真實(shí)姓名
        /// </summary>
        public string re_user_name { get; set; }

        /// <summary>
        /// 企業(yè)付款金額,單位為分
        /// </summary>
        public int amount { get; set; }

        /// <summary>
        /// 企業(yè)付款操作說明信息。必填。
        /// </summary>
        public string desc { get; set; }

        /// <summary>
        /// 調(diào)用接口的機(jī)器Ip地址
        /// </summary>
        public string spbill_create_ip { get; set; }
    }

/// <summary>
    /// 企業(yè)付款操作的返回結(jié)果
    /// </summary>
    public class CorpPayResult : PayResult
    {    
        /// <summary>
        /// 微信分配的公眾賬號ID(企業(yè)號corpid即為此appId)
        /// </summary>
        public string mch_appid { get; set; }

        /// <summary>
        /// 微信支付分配的終端設(shè)備號
        /// </summary>
        public string device_info { get; set; }

        /// <summary>
        /// 商戶使用查詢API填寫的單號的原路返回. 
        /// </summary>
        public string partner_trade_no { get; set; }

        /// <summary>
        /// 企業(yè)付款成功,返回的微信訂單號
        /// </summary>
        public string payment_no { get; set; }

        /// <summary>
        /// 企業(yè)付款成功時間
        /// </summary>
        public string payment_time { get; set; }
    }

企業(yè)付款的API實(shí)現(xiàn)和前面兩種紅包的處理方式 差不多,一個是傳入常規(guī)的賬號信息,一個是傳入業(yè)務(wù)參數(shù),然后提交獲取結(jié)果即可,具體代碼如下所示。

/// <summary>
        /// 企業(yè)付款(請求需要雙向證書)
        /// 企業(yè)付款業(yè)務(wù)是基于微信支付商戶平臺的資金管理能力,為了協(xié)助商戶方便地實(shí)現(xiàn)企業(yè)向個人付款,
        /// 針對部分有開發(fā)能力的商戶,提供通過API完成企業(yè)付款的功能。 比如目前的保險行業(yè)向客戶退保、給付、理賠。
        /// 企業(yè)付款將使用商戶的可用余額,需確保可用余額充足。查看可用余額、充值、提現(xiàn)請登錄商戶平臺“資金管理”進(jìn)行操作。https://pay.weixin.qq.com/ 
        /// 注意:與商戶微信支付收款資金并非同一賬戶,需要單獨(dú)充值。
        /// </summary>
        /// <param name="json">企業(yè)支付數(shù)據(jù)</param>
        /// <returns></returns>
        public CorpPayResult CorpPay(CorpPayJson json)
        {
            CheckAccount();//檢查AccountInfo的對象屬性值

            WxPayData data = new WxPayData();
            data.SetValue("mch_appid", AccountInfo.UniteAppId);//公眾賬號appid, 注意是mch_appid,而非wxappid
            data.SetValue("mchid", AccountInfo.MchID);//商戶號, 注意是mchid而非mch_id
            data.SetValue("nonce_str", data.GenerateNonceStr());//隨機(jī)字符串
            data.SetValue("spbill_create_ip", NetworkUtil.GetIPAddress());//終端ip      
            data.SetValue("partner_trade_no", data.GenerateOutTradeNo(AccountInfo.MchID));//隨機(jī)字符串

            data.SetValue("device_info", json.device_info);//終端ip            
            data.SetValue("openid", json.openid);
            data.SetValue("check_name", json.check_name);
            data.SetValue("re_user_name", json.re_user_name);
            data.SetValue("amount", json.amount);
            data.SetValue("desc", json.desc);

            data.SetValue("sign", data.MakeSign(AccountInfo.PayAPIKey));//最后生成簽名

            var url = string.Format("https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers");
            return Helper.GetPayResultWithCert<CorpPayResult>(data, url, AccountInfo.CertPath, AccountInfo.CertPassword);
        }

接口定義及實(shí)現(xiàn)好后,我們可以在項(xiàng)目中對API進(jìn)行調(diào)用測試,具體代碼如下所示

CorpPayJson json = new CorpPayJson()
            {
                amount = 100,
                check_name = PayCheckName.FORCE_CHECK.ToString(),
                desc = "測試退款",
                openid = this.openId,
                device_info = "",
                re_user_name = "伍華聰",
                spbill_create_ip = NetworkUtil.GetIPAddress()
            };

            var result = api.CorpPay(json);
            var message = string.Format("企業(yè)直接付款:{0} {1}", result.Success ? "成功" : "失敗", result.Message);
            Console.WriteLine(message);
            Console.WriteLine(result.ToJson());

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

付款操作成功后,我們可以看到這個錢是直接到用戶錢包里面去的,而且我們也可以在商戶后臺進(jìn)行記錄的查看,可以看到對應(yīng)的記錄。

C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作

?

?更多C#開發(fā)微信門戶及應(yīng)用微信支付之企業(yè)付款封裝操作相關(guān)文章請關(guān)注PHP中文網(wǎng)!

?

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72