Skip to content

guoyu07/wechat-pay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WechatPay

Latest Stable Version License Build Status

simplest, minimal dependency

Install

composer require zhangv/wechat-pay

or

"zhangv/wechat-pay":">1.2.5"

Step1 - Configuration

return [
	'mch_id' => 'XXXX', //商户号
	'appid' => 'XXXXXXXXXXXXXXXXXXX', //APPID
	'appsecret' => 'XXXXXXXXXXXXXXXXXXXXXXXXX', //App Secret
	'apikey' =>'XXXXXXXXXXXXXXXXXXXXXXX', //支付密钥
	'sslcertPath' => '/PATHTO/apiclient_cert.pem',
	'sslkeyPath' => '/PATHTO/apiclient_key.pem',
	'signType' => 'MD5',
	'notify_url' => 'http://YOURSITE/paidnotify.php',
	'refundnotify_url' => 'http://YOURSITE/refundednotify.php',
];

Step2 - Pay

 $payment = new WechatPay($cfg);
 $openid = $_REQUEST['openid'];
 $stamp = date('YmdHis');
 $ext = ['attach'=>''];
 $desc = "desc$stamp";
 $amt = 1;
 $prepay_id = $payment->getPrepayId("$desc", "$stamp", $amt, $openid, $ext);
 $package = $payment->getPackage($prepay_id);
 ?>
 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" ></script>
 <script>
 	wx.ready(function(){
 		wx.chooseWXPay({
 			appId: '<?=$package["appId"]?>',
 			timestamp: <?=$package["timeStamp"]?>, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
 			nonceStr: '<?=$package["nonceStr"]?>', // 支付签名随机串,不长于 32 位
 			package: '<?=$package["package"]?>', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
 			signType: '<?=$package["signType"]?>', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
 			paySign: '<?=$package["paySign"]?>', // 支付签名
 			success: function (res) {
 				// 支付成功后的回调函数
 				alert('支付成功!');
 			}
 		});
 		// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
 	});
 	wx.error(function(res){// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
 		alert(res);
 	});
 </script>

About

Simplest WechatPay(微信支付)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%