ios 微信 服务器端,微信支付通过服务端生成支付链接在ios唤起支付界面

// STEP 0. 账号帐户资料

//更改商户把相关参数后可测试

$APP_ID=""   ;            //APPID

$APP_SECRET="";//appsecret

//商户号,填写商户对应参数

$MCH_ID="";

//商户API密钥,填写相应参数

$PARTNER_ID="";

//支付结果回调页面

$NOTIFY_URL="";

//STEP 1. 构造一个订单。

$order=array(

"body" => "V3支付测试",

"appid" => $APP_ID,

"device_info" => "APP-001",

"mch_id" => $MCH_ID,

"nonce_str" => mt_rand(),

"notify_url" => $NOTIFY_URL,

"out_trade_no" => time(),

"spbill_create_ip" => "196.168.1.1",

"total_fee" => 1,//这里的最小单位时分,跟支付宝不一样。1就是1分钱。只能是整形。

"trade_type" => "APP"

);

ksort($order);

//STEP 2. 签名

$sign="";

foreach ($order as $key => $value) {

if($value&&$key!="sign"&&$key!="key"){

$sign.=$key."=".$value."&";

}

}

$sign.="key=".$PARTNER_ID;

$sign=strtoupper(md5($sign));

//STEP 3. 请求服务器

$xml="\n";

foreach ($order as $key => $value) {

$xml.="".$value."".$key.">\n";

}

$xml.="".$sign."\n";

$xml.="";

// print_R($xml);

// die;

$opts = array(

'http' =>

array(

'method'  => 'POST',

'header'  => 'Content-type: text/xml',

'content' => $xml

),

"ssl"=>array(

"verify_peer"=>false,

"verify_peer_name"=>false,

)

);

$context  = stream_context_create($opts);

$result = file_get_contents('https://api.mch.weixin.qq.com/pay/unifiedorder', false, $context);

$result = simplexml_load_string($result,null, LIBXML_NOCDATA);

//使用$result->nonce_str和$result->prepay_id。再次签名返回app可以直接打开的链接。

echo "

";

print_R($result);

die;

$input=array(

"noncestr"=>"".$result->nonce_str,

"prepayid"=>"".$result->prepay_id,//上一步请求微信服务器得到nonce_str和prepay_id参数。

"appid"=>$APP_ID,

"package"=>"Sign=WXPay",

"partnerid"=>$MCH_ID,

"timestamp"=>time(),

);

ksort($input);

$sign="";

foreach ($input as $key => $value) {

if($value&&$key!="sign"&&$key!="key"){

$sign.=$key."=".$value."&";

}

}

$sign.="key=".$PARTNER_ID;

echo "

";

print_R($input);

$sign=strtoupper(md5($sign));

Print_R($sign);

die;

$iOSLink=sprintf("weixin://app/%s/pay/?nonceStr=%s&package=Sign%%3DWXPay&partnerId=%s&prepayId=%s&timeStamp=%s&sign=%s&signType=SHA1",$APP_ID,$input["noncestr"],$MCH_ID,$input["prepayid"],$input["timestamp"],$sign);

echo $iOSLink;

//或者在Safari中打开以便测试。

echo "

微信支付

";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值