短视频开发,支付宝和微信App支付回调如何实现

发布来源:云豹科技
发布人:云豹科技
2021-01-06 10:06:28

短视频开发已经将支付宝和微信的支付列为默认的开发功能,支付功能的实现并没有那么简单,也需要进行各种调试和接入才能让支付功能更好的适配平台,今天我们从支付宝和微信两个支付方式上分开来讲解。

1.支付宝官方文档及SDk参考下载
链接:https://openhome.alipay.com/docCenter/docCenter.htm?from=openhomemenu

//支付宝App支付回调简单举例,以下写法为thinkphp:


public function notify_ali() {
require_once(CMF_ROOT."sdk/alipay_app/alipay.config.php");
$alipay_config['partner']  = “支付宝合作者ID”;
require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_core.function.php");
require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_rsa.function.php");
require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_notify.class.php");
//计算得出通知验证结果
$alipayNotify = new \AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();
if($verify_result) {//验证成功
//商户订单号
$out_trade_no = $_POST['out_trade_no'];
//支付宝交易号
$trade_no = $_POST['trade_no'];
//交易状态
$trade_status = $_POST['trade_status'];
//交易金额
$total_fee = $_POST['total_fee'];
if($_POST['trade_status'] == 'TRADE_FINISHED') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//如果有做过处理,不执行商户的业务程序
//注意:
//退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
//请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
//调试用,写文本函数记录程序运行情况是否正常
//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
}else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {   //逻辑处理
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//如果有做过处理,不执行商户的业务程序
//注意:
//付款完成后,支付宝系统发送该交易状态通知
//请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
 
//调试用,写文本函数记录程序运行情况是否正常
echo "success";  //请不要修改或删除
exit;    
}
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
echo "fail";  //请不要修改或删除
exit;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}else {
//验证失败
echo "fail";
exit;
//调试用,写文本函数记录程序运行情况是否正常
//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
}
}
/* 支付宝支付 */


 2.微信官方文档及SDk参考下载

链接: https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/index.shtml

//微信App支付回调简单举例,以下写法为thinkphp:


/* 微信支付 */ 
private $wxDate = null; 
public function notify_wx(){
$xmlInfo=file_get_contents("php://input"); 
 
//解析xml
$arrayInfo = $this -> xmlToArray($xmlInfo);
$this -> wxDate = $arrayInfo;
if($arrayInfo['return_code'] == "SUCCESS"){
$wxSign = $arrayInfo['sign'];
unset($arrayInfo['sign']);
$arrayInfo['appid']  =  “微信开放平台移动应用AppID”;
$arrayInfo['mch_id'] =  “微信商户号mchid”;
$key =  “微信密钥key”;
ksort($arrayInfo);//按照字典排序参数数组
$sign = $this -> sign($arrayInfo,$key);//生成签名
if($this -> checkSign($wxSign,$sign)){
echo $this -> returnInfo("SUCCESS","OK");
$this -> orderServer();//订单处理业务逻辑
exit;
}else{
echo $this -> returnInfo("FAIL","签名失败");
exit;
}
}else{
echo $this -> returnInfo("FAIL","签名失败");
exit;
}  
}
 
private function returnInfo($type,$msg){
if($type == "SUCCESS"){
return $returnXml = "<xml><return_code><![CDATA[{$type}]]></return_code></xml>";
}else{
return $returnXml = "<xml><return_code><![CDATA[{$type}]]></return_code><return_msg><![CDATA[{$msg}]]></return_msg></xml>";
}
}

 

//签名验证
private function checkSign($sign1,$sign2){
return trim($sign1) == trim($sign2);
}
/* 订单查询加值业务处理
 * @param orderNum 订单号    
 */
private function orderServer(){
$info = $this -> wxDate; //订单回调信息处理
//程序处理逻辑
}  
/**
* sign拼装获取
*/
private function sign($param,$key){
$sign = "";
foreach($param as $k => $v){
$sign .= $k."=".$v."&";
}
$sign .= "key=".$key;
$sign = strtoupper(md5($sign));
return $sign;
}
/**
* xml转为数组
*/
private function xmlToArray($xmlStr){
$msg = array(); 
$postStr = $xmlStr; 
$msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 
return $msg;
}
/* 微信支付 */


3.支付方式的应用途径

既然有支付功能,就肯定有能够花销的地方,短视频开发具备直播功能,直播功能离不开礼物打赏,礼物打赏是短视频开发盈利的方式之一,也是需要用到支付功能的支持;支付方式的应用还体现在短视频的上热门功能上,付费上热门,帮助视频成为平台热门视频是短视频开发的另一种盈利方式。

以上就是关于短视频开发,支付宝和微信App支付回调如何实现相关的代码,想要了解更多内容,欢迎关注之后的文章。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
立即查看