wordpress收费下载资源主题
wordpress付费下载资源插件

modown主题怎么对接抖音小程序支付

最近模板兔在给客户开发抖音小程序,大概功能就是付费下载与查看,使用的是wordpress的Modown主题+erphpdown插件来对接头条小程序,下面给出一些核心代码供参考:

小程序端js代码:

tt.request({

      url: app.globalData.appUrl,

      data: {

        erphp_app: app.globalData.appToken,

        action: 'user',

        page: "***",

        userid: tt.getStorageSync('UserId'),

        ice_money: that.data.inputRechargeMoney

      },

      method: 'POST',

      header: {

        'content-type': 'application/x-www-form-urlencoded'

      },

      success: function (res) {

        tt.hideLoading();

        //console.log(res.data);

        if (res.data.error == '0') {

          tt.pay({

            orderInfo: {

              order_id: res.data.ddata.order_id,

              order_token:res.data.ddata.order_token

            },

            service: 5,

            success(res) {

              if (res.code == 0) {

                app.globalData.userBackFlush = 1;

                tt.showModal({

                  title: '温馨提示',

                  content: '充值成功!',

                  confirmText: '好的',

                  showCancel: false,

                  success(res) {

                    if (res.confirm) {

                      tt.navigateBack({

                        delta: 1

                      });

                    }

                  }

                });

              }else{

                tt.showToast({

                  title: '支付失败',

                  icon: 'none',

                  duration: 2000

                });

              }

            },

            fail(res) {

              tt.showToast({

                title: '支付失败',

                icon: 'none',

                duration: 2000

              });

            }

          });

        } else {

          tt.showToast({

            title: res.data.msg,

            icon: 'none',

            duration: 2000

          });

        }

      },

      fail: function () {

        tt.showToast({

          title: '提交失败',

          icon: 'none',

          duration: 2000

        });

      }

    });
网站服务端php代码:
$price = esc_sql(trim($_POST['ice_money']));
if($price){
require_once ERPHPAPP_PATH."/pay/douyin/api.php";
$out_trade_no = date("ymdhis").mt_rand(100,999).mt_rand(100,999);
$subject = get_bloginfo('name').'订单['.get_the_author_meta( 'user_login', $userid ).']';
$erphp_order_title = get_option('erphp_order_title');
if($erphp_order_title){
$subject = $erphp_order_title;
}

$sql="INSERT INTO $wpdb->icemoney (ice_money,ice_num,ice_user_id,ice_user_type,ice_post_id,ice_post_index,ice_time,ice_success,ice_note,ice_success_time,ice_alipay,ice_aff,ice_ip,ice_data) VALUES ('$price','$out_trade_no','".$userid."','0','0','','".date("Y-m-d H:i:s")."',0,'0','".date("Y-m-d H:i:s")."','dymini','','".erphpGetIP()."','')";
$wpdb->query($sql);

$url = 'https://developer.toutiao.com/api/apps/ecpay/v1/create_order';
$data = [
"app_id" => get_option("erphpapp_dyappid"),
"out_order_no" =>$out_trade_no,
"total_amount" => $price*100,
"subject" => $subject,
"body" => 'erphpdown',
"valid_time" => 3600,
"notify_url" => ERPHPAPP_URL.'***.php'
];
$data['sign']= erphpapp_dyapp_sign($data,get_option("erphpapp_dyappsalt"));
$res= erphpapp_http($url,json_encode($data),'POST');
$res=json_decode($res,true);
$ddata = array();
if(!is_array($res)){
$error = 1;
$msg = $res;
}elseif($res['err_no']!=0){
$error = 1;
$msg = $res['err_tips'];
}else{
$error = 0;
$msg = '';
$ddata=$res['data'];
}

echo json_encode(array("error"=>$error,"msg"=>$msg,"ddata"=>$ddata));
}
function erphpapp_dyapp_sign($map,$salt) {
$rList = [];
foreach($map as $k =>$v) {
if ($k == "other_settle_params" || $k == "app_id" || $k == "sign" || $k == "thirdparty_id")
continue;

$value = trim(strval($v));
if (is_array($v)) {
$value = arrayToStr($v);
}

$len = strlen($value);
if ($len > 1 && substr($value, 0,1)=="\"" && substr($value, $len-1)=="\"")
$value = substr($value,1, $len-1);
$value = trim($value);
if ($value == "" || $value == "null")
continue;
$rList[] = $value;
}
$rList[] =$salt;
sort($rList, SORT_STRING);
return md5(implode('&', $rList));
}

function erphpapp_dyapp_backsign(array $params) {
$data = [
$params['timestamp'],
(string) $params['nonce'],
(string) $params['msg'],
(string) $params['token'],
];

sort($data, SORT_STRING);

return hash('sha1', join('', $data));
}

回调通知php代码:

<?php

ini_set('date.timezone','Asia/Shanghai');

//error_reporting(E_ERROR);

require_once('../../../../../wp-load.php');

require_once('api.php');

$post = file_get_contents('php://input');

$post=json_decode($post,true);

$post['token']=get_option("erphpapp_dyapptoken");

$sign=erphpapp_dyapp_backsign($post);

if($sign!=$post['msg_signature']){

    $return=json_encode(["err_no"=>400,"err_tips"=>'business fail']);

    echo $return;exit;

}elseif($post['type'] == 'payment'){

    $msg = json_decode($post['msg'],true);

    $total_fee=$msg['total_amount']*0.01;

$out_trade_no = $msg['cp_orderno'];




if(strstr($out_trade_no,'MD') || strstr($out_trade_no,'FK')){

epd_set_wppay_success($out_trade_no,$total_fee,'dymini');

}else{

epd_set_order_success($out_trade_no,$total_fee,'dymini');

}

   

    $return=json_encode(["err_no"=>0,"err_tips"=>'success']);

    echo $return;exit;

}

0 个评论

定制开发
本站承接WordPress等系统建站仿站、二次开发、主题插件定制等开发服务
在线咨询
  • 请先加Q,临时会话收不到
    QQ:1-247-246-247

  • QQ一群:104228692(满)
  • QQ二群:64786792
在线咨询
本站承接WordPress建站仿站、二次开发、主题插件定制等PHP开发服务!

了解详情