`

新浪微游戏支付流程

阅读更多

1.用户点击支付,自己生成支付ID(9位),调用api获取token

 

$order_id = $orderIdPrev . (9位不重复的数字); 
$sign = md5( $orderId . '|' . $amount . '|' . $desc . '|' . $app_secret );
$params = array
          (
	     'order_id' => $order_id ,
	     'amount' => $amount , //支付金额,单位分 大于0---500000。
	     'desc' => $desc ,     //支付描述 必须是utf-8编码
	     'sign' => $sign ,
          );

$token = $weiyouxi->get('pay/get_token', $params);

//沙箱环境
//$token = $weiyouxi->get('test/pay/get_token', $params);

 

2.将订单号,token,描述和数量提交表单给sina

 

$("#wyxPay_order_id").val(response[1]['order_id']);
$("#wyxPay_desc").val(response[1]['desc']);
$("#wyxPay_amount").val(response[1]['amount']);
$("#wyxPay_token").val(response[1]['token']);

 

    <form name='wyxPay' id="wyxPay" action="<?php echo $sns_config->get('pay_post_form');?>"  method="post" target="_blank">
        <input type="hidden" name="return_url" value="<?php echo $sns_app_url; ?>"/>
        <input type="hidden" id="wyxPay_order_id" name="order_id" value=""/>
        <input type="hidden" name="order_uid" value="<?php echo $player_uid;?>"/>
        <input type="hidden" id="wyxPay_desc" name="desc" value="<?php echo $exchange_cards[$card]['card_name'];?>"/>
        <input type="hidden" name="appkey" value="<?php echo $sns_config->get('app_id');?>"/>
        <input type="hidden" id="wyxPay_amount" name="amount" value="<?php echo $exchange_cards[$card]['card_amount'];?>"/>
        <input type="hidden" name="version" value="1.0" />
        <input type="hidden" id="wyxPay_token" name="token" value=""/>
    </form>

 

3.然后用户选择银行,付款.

 

4.付款完毕,sina会调用应用的一个回调页面,例如sina_pay_callback.php,这个页面处理一些具体的验证订单(防止重复提交),发货(给玩家实际游戏中的货币)的过程

 

$params = array
          (
	      'order_id' => $order_id ,//支付ID(汇总信息页面,7位) . 9位数字(不能重复,以免订单号重复),总长度必须为16位)
	      'user_id' => $user_id ,    //支付者的SinaUID
	      'app_id' => $appKey ,     //开放平台的应用唯一标识
	      'sign' => $sign ,         //md5( $order_id . '|' . $app_secret );
          );
 //沙箱环境
 //$token = $weiyouxi->get('test/pay/order_status', $params);
 $orderStatus = $weiyouxi->get('pay/order_status', $params);
 

回调参数

请注意:回调地址是在我的游戏->支付功能页面填写的地址。

参数名 必填 类型 说明
order_id true int 必选。开放平台订单号
appkey false int 开放平台的应用唯一标识
order_uid false int 支付者的SinaUID
amount true int 必选。支付金额 单位分 大于0的整数
sign false int (此签名无意义,如需确认订单是否真实,请调用检查订单状态接口)

返回值:游戏 返回状态为200,且返回字符串为"OK"(注意是大写)。则回调成功,否则开放平台会尝试回调3次。 如果3次都没有回调成功,则不再回调。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics