Heim  >  Artikel  >  WeChat-Applet  >  Verteilung roter Umschläge für öffentliche WeChat-Konten und Implementierungsmethoden für Unternehmenszahlungen

Verteilung roter Umschläge für öffentliche WeChat-Konten und Implementierungsmethoden für Unternehmenszahlungen

小云云
小云云Original
2018-03-20 14:17:323631Durchsuche

Der rote WeChat-Bargeldumschlag ist eines der Marketingtools der WeChat-Zahlungshändlerplattform. Seit seiner Einführung erfreut er sich bei Händlern und Benutzern großer Beliebtheit. Über diese Plattform können Händler WeChat Pay-Nutzern rote Bargeldumschläge ausstellen. Nachdem der Benutzer den roten Umschlag erhalten hat, landet das Geld auf dem WeChat-Zahlungswechselkonto des Benutzers, was zu begeisterter Resonanz auf die Marketingaktivitäten des Händlers im täglichen Betrieb führt.
1. Sie müssen das Autorisierungsverzeichnis nicht bezahlen, um rote Umschläge zu versenden, aber Sie müssen die IP-Adresse der Red-Envelope-API im Backend des Händlers aufrufen, also die IP Ihres Servers, der die Red-Envelope-Anfrage initiiert . Der Vorgangspfad lautet: [Bei der Händlerplattform anmelden——>Cash Red Envelope——>Produkteinstellungen] (Hinweis: Die Schaltfläche „Produkteinstellungen“ wird erst angezeigt, nachdem Sie das Bargeld aktiviert haben rote Umschlagfunktion).
2. Für den Versand roter Umschläge ist ein API-Zertifikat erforderlich.
3. Bevor Sie Bargeldumschläge ausstellen, stellen Sie bitte sicher, dass Sie über ausreichende Mittel verfügen. Das Geld, das andere Ihnen über WeChat Pay für den Kauf von Dingen auf Ihrer Plattform zahlen, ist nicht dasselbe wie das Geld, das Sie für den Versand roter Umschläge ausgeben müssen. Das Geld muss hier separat aufgeladen werden. Der Vorgangspfad ist: [Melden Sie sich beim Händler an Plattform——>Account Center——> ;Fondsverwaltung——>Aufladen].
4. Sie können Rechte ausleihen, wenn Sie rote Umschläge versenden. Das öffentliche Konto A ist beispielsweise ein öffentliches Konto, bei dem die Zahlung erfolgt ist Konto B kann A verwenden. WeChat Pay sendet rote Umschläge, aber das Senden roter Umschläge erfordert die Kenntnis der OpenID des Benutzers. Wenn Sie diese OpenID erhalten, müssen Sie auch das öffentliche Konto A ausleihen, um es zu erhalten A muss die OpenID sein, die A des Benutzers entspricht.

Vorbereitung vor dem Betrieb, d. h. einige Konfigurationen der WeChat-Zahlungshändlerplattform, finden Sie im Dokument: https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon .php?chapter= 13_3&index=2

Tatsächlich ähnelt das Versenden roter Umschläge auf offiziellen WeChat-Konten den Unternehmenszahlungen, ohne weitere Umschweife Direkt zum Code:

/**
 * 公众号发红包
 * @param string $openid 	用户openID
 * @param string $money 	金额
 * @param string $trade_no  订单编号
 * @param string $act_name  活动名称
 * @return multitype 		支付结果
 */
public function sendredpack($openid,$money,$trade_no,$act_name){
	$config = $this->config;
	
	$data = array(
		'nonce_str' 		=> self::getNonceStr(),
		'mch_billno'     	=> $trade_no,
		'mch_id' 			=> $config['mch_id'],
		'wxappid' 			=> $config['wxappid'],
		'send_name' 		=> '江南极客',
		're_openid'    		=> $openid,
		'total_amount'    	=> $money * 100, //付款金额单位为分
		'total_num'    		=> 1,
		'wishing'      		=> '祝您天天开心!',
		'client_ip' 		=> self::getip(),
		'act_name' 			=> $act_name,
		'remark' 			=> 'From 江南极客'
	);
	
	$data['sign'] = self::makeSign($data);
	
	//构造XML数据
	$xmldata = self::array2xml($data);
	
	$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
	//发送post请求
	$res = self::curl_post_ssl($url, $xmldata);
	
	if(!$res){
		return array('status'=>0, 'msg'=>"Can't connect the server" );
	}
	
	// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了
	//file_put_contents('./log.txt',$res,FILE_APPEND);
	
	$content = self::xml2array($res);
	if(strval($content['return_code']) == 'FAIL'){
		return array('status'=>0, 'msg'=>strval($content['return_msg']));
	}
	if(strval($content['result_code']) == 'FAIL'){
		return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));
	}
	return $content;
}
	
/**
 * 公众号企业支付
 * @param string $openid 	用户openID
 * @param string $money 	金额
 * @param string $trade_no  订单编号
 * @param string $desc  	付款操作说明信息(比如:提现)
 * @return string 	支付结果
 */
public function mchpay($openid,$money,$trade_no,$desc){
	$config = $this->config;
	$data = array(
		'mch_appid' => $config['wxappid'],
		'mchid'     => $config['mch_id'],
		'nonce_str' => self::getNonceStr(),
		'partner_trade_no' => $trade_no, 
		'openid'    => $openid,
		'check_name'=> 'NO_CHECK', 			//OPTION_CHECK不强制校验真实姓名, FORCE_CHECK:强制 NO_CHECK:
		'amount'    => $money * 100, 		//付款金额单位为分
		'desc'      => $desc,
		'spbill_create_ip' => self::getip()
	);
	
	//生成签名
	$data['sign'] = self::makeSign($data);
	
	//return $config;
	
	//构造XML数据
	$xmldata = self::array2xml($data);
	$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
	//发送post请求
	$res = self::curl_post_ssl($url, $xmldata);
	if(!$res){
		return array('status'=>0, 'msg'=>"Can't connect the server" );
	}
	// 这句file_put_contents是用来查看服务器返回的结果 测试完可以删除了
	//file_put_contents('./log1.txt',$res,FILE_APPEND);
	
	//付款结果分析
	$content = self::xml2array($res);
	if(strval($content['return_code']) == 'FAIL'){
		return array('status'=>0, 'msg'=>strval($content['return_msg']));
	}
	if(strval($content['result_code']) == 'FAIL'){
		return array('status'=>0, 'msg'=>strval($content['err_code']).':'.strval($content['err_code_des']));
	}
   
	return $content;
}

Dies ist eine gekapselte Klasse und der Aufruf der Methode ist super einfach:

include 'wxmerpay.class.php';		//引入类文件
$config = array(
	'wxappid'		=> 'wx123456789',
	'mch_id'	 	=> '1123456781',
	'pay_apikey' 	=> '1234567898765432123456789',
	'api_cert'		=> $cert_path . '/apiclient_cert.pem',	
	'api_key'		=> $cert_path . '/apiclient_key.pem',
	'rootca'		=> $cert_path . '/rootca.pem'
);
$redpack = new WxRedpack($config);	//初始化
$redpack->sendredpack($openid,$money,$trade_no,$act_name);  //发红包

Ist das so einfach? Rechts! So einfach ist das, aber es verwendet viele selbstgekapselte Funktionen und Methoden. Download des Quellcodes: http://download.csdn.net/download/sinat_35861727/9956485
Wenn Sie es wirklich nützlich finden, geben Sie es bitte ein Liken und hinterlassen Sie ein Like. Gute Bewertung, vielen Dank! Wenn Sie Fragen haben, können Sie sie mir im Kommentarbereich mitteilen!

Verwandte Empfehlungen:

WeChat-Zahlungsrückerstattungsfunktionsentwicklung

PHP-Entwicklungsbeispiele für WeChat-Zahlung und Alipay-Zahlung

Forschungsaustausch zur WeChat-Zahlungsschnittstelle

Das obige ist der detaillierte Inhalt vonVerteilung roter Umschläge für öffentliche WeChat-Konten und Implementierungsmethoden für Unternehmenszahlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn