위 챗 애플 릿 결제 기능 이 PHP 인 스 턴 스 를 실현 합 니 다.
전단 코드:
wx.request({
url: 'https://www.yourhost.com/weixin/WeiActivity/payJoinfee',//
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method:'POST',
success: function(res) {
console.log(res.data);
console.log(' ');
wx.requestPayment({
'timeStamp': res.data.timeStamp,
'nonceStr': res.data.nonceStr,
'package': res.data.package,
'signType': 'MD5',
'paySign': res.data.paySign,
'success':function(res){
console.log('success');
wx.showToast({
title: ' ',
icon: 'success',
duration: 3000
});
},
'fail':function(res){
console.log('fail');
},
'complete':function(res){
console.log('complete');
}
});
},
fail:function(res){
console.log(res.data)
}
});
백 엔 드 코드:
//
public function payJoinfee(){
$appid='wx888888888';
$openid='oCQwY0Q_pzrQpu8888888';
$mch_id='141388888';
$key='9A0A86888888888';
import('Weixin.Lib.WeixinPay');
$weixinpay = new \WeixinPay($appid,$openid,$mch_id,$key);
$return=$weixinpay->pay();
$this->response($return,'json');
}
위 챗 결제 클래스
<?php
/*
*
*/
class WeixinPay{
protected $appid;
protected $mch_id;
protected $key;
protected $openid;
function __construct($appid,$openid,$mch_id,$key){
$this->appid=$appid;
$this->openid=$openid;
$this->mch_id=$mch_id;
$this->key=$key;
}
public function pay(){
//
$return=$this->weixinapp();
return $return;
}
//
private function unifiedorder(){
$url='https://api.mch.weixin.qq.com/pay/unifiedorder';
$parameters=array(
'appid'=>$this->appid,// ID
'mch_id'=>$this->mch_id,//
'nonce_str'=>$this->createNoncestr(),//
'body'=>' ',//
'out_trade_no'=>'2015450806125346',//
'total_fee'=>floatval(0.01*100),//
'spbill_create_ip'=>$_SERVER['REMOTE_ADDR'],// IP
'notify_url'=>'http://www.weixin.qq.com/wxpay/pay.php',//
'openid'=>$this->openid,// id
'trade_type'=>'JSAPI'//
);
//
$parameters['sign']=$this->getSign($parameters);
$xmlData=arrayToXml($parameters);
$return=xmlToArray(postXmlSSLCurl($xmlData,$url,60));
return $return;
}
//
private function weixinapp(){
//
$unifiedorder=$this->unifiedorder();
$parameters=array(
'appId'=>$this->appid,// ID
'timeStamp'=>''.time().'',//
'nonceStr'=>$this->createNoncestr(),//
'package'=>'prepay_id='.$unifiedorder['prepay_id'],//
'signType'=>'MD5'//
);
//
$parameters['paySign']=$this->getSign($parameters);
return $parameters;
}
// : , 32
private function createNoncestr($length = 32 ){
$chars = "abcdefghijklmnopqrstuvwxyz0123456789";
$str ="";
for ( $i = 0; $i < $length; $i++ ) {
$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);
}
return $str;
}
// :
private function getSign($Obj){
foreach ($Obj as $k => $v){
$Parameters[$k] = $v;
}
// :
ksort($Parameters);
$String = $this->formatBizQueryParaMap($Parameters, false);
// : string KEY
$String = $String."&key=".$this->key;
// :MD5
$String = md5($String);
// :
$result_ = strtoupper($String);
return $result_;
}
/// : ,
private function formatBizQueryParaMap($paraMap, $urlencode){
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k => $v){
if($urlencode)
{
$v = urlencode($v);
}
$buff .= $k . "=" . $v . "&";
}
$reqPar;
if (strlen($buff) > 0){
$reqPar = substr($buff, 0, strlen($buff)-1);
}
return $reqPar;
}
}
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.