概要
因为有客户有这种需求 可以通过调用yy的接口来实现收款变现
今天就来给大家分析一下流程
流程
到此sign解密结束 即为md5加密turnover和data的内容
$data = '{"version":0,"appId":62,"cmd":1022,"jsonMsg":{"cmd":1022,"actionId":70,"currencyType":0,"payChannel":"Zfb","payMethod":"Wap","amount":10,"needUnicast":true,"returnUrl":"www.baidu.com","expand":"{\"orderInfo\":{\"productNum\":1,\"productConfigId\":62000002}}","uid":"2954250643","appId":62,"usedChannel":10000,"seq":1706086270955}}';
$sign = md5('turnover'+$data)
switch ($money) {
case ($money % 10 == 0 && $money / 10 > 0 && $money / 10 < 11):
$productNum = intval($money / 10);
$productConfigId = 62000002;
break;
case ($money % 30 == 0 && $money / 30 > 0 && $money / 30 < 11):
$productNum = intval($money / 30);
$productConfigId = 62000003;
break;
case ($money % 50 == 0 && $money / 50 > 0 && $money / 50 < 11):
$productNum = intval($money / 50);
$productConfigId = 62000004;
break;
case ($money % 100 == 0 && $money / 100 > 0 && $money / 100 < 11):
$productNum = intval($money / 100);
$productConfigId = 62000005;
break;
default:
$this->success('1015', null, '订单创建失败(错误信息:只支持10 30 50 100的倍数(1-10倍))');
break;
}
$uid = getSubstr($atad['ck'], 'yyuid=', ';');
if($uid == ""){
$allck = explode(";",$atad['ck']);
foreach ($allck as $key => $value){
$expck = explode("=",$value);
if($expck[0] == 'yyuid'){
$uid = $expck[1];
}
}
}
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);
$data = '{"version":0,"appId":62,"cmd":1022,"jsonMsg":{"cmd":1022,"actionId":70,"currencyType":0,"payChannel":"Zfb","payMethod":"Wap","amount":'.$money.',"needUnicast":true,"returnUrl":"www.baidu.com","expand":"{\"orderInfo\":{\"productNum\":'.$productNum.',\"productConfigId\":'.$productConfigId.'}}","uid":"'.$uid.'","appId":62,"usedChannel":10000,"seq":'.$msectime.'}}';
$sign = md5('turnover'.$data);
$delimiter = '----WebKitFormBoundary3BBO8752D6MoAA9B';
$param['appId'] = '62';
$param['cmd'] = '1022';
$param['sign'] = $sign;
$param['data'] = $data;
$post_data = '';
foreach ($param as $name => $content) {
$post_data .= "--" . $delimiter . "\r\n"
. 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"
. $content . "\r\n";
}
$post_data .= "--" . $delimiter;
$header = [
'content-type: multipart/form-data; boundary='.$delimiter,
'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
'origin: https://web.yy.com',
'referer: https://web.yy.com/',
'cookie: '.$atad['ck'],
];
$url = 'https://turnover.yy.com/api/62/1022';
$ret = curl_post($url,$post_data,$header,$atad['ck']);
$json=json_decode($ret,TRUE);
if($json['result'] != 1){
return $this->getReturn(-1, $atad['typec_name'].'订单拉起失败!');
}
$json = json_decode($json['jsonMsg'],TRUE);
$atad['pay_id'] = $json['orderId'];//通道订单号
$atad['mid_url'] = $json['payUrl'];//通道二维码
return $this->getReturn(1, $atad, $atad['data']);